Яндекс.Еда осуществляет доставку еды из ресторанов. При этом у каждого ресторана есть зона, в рамках которой осуществляется доставка. Зона представляет собой полигон (заданы координаты его вершин). Пользователь в зависимости от своего местоположения (координат точки) видит разное количество доступных ресторанов. Нам важно, чтобы у каждого пользователя было достаточное количество ресторанов для выбора. Задача заключается в том, чтобы для каждого пользователя посчитать доступное ему количество ресторанов.
Использовать Python (результат .py или .ipynb файл).
Данные, которые есть (для простоты в формате .csv, несколько первых строк): user_coordinates.csv (примерно 300 тыс. строк, user_id – идентификатор пользователя)
user_id | loc_lat | loc_lon |
---|---|---|
1 | 55.737564 | 37.345186 |
2 | 56.234564 | 37.234590 |
3 | 55.234578 | 36.295745 |
place_zone_coordinates.csv (примерно 500 тыс. строк, place_id – идентификатор ресторана, point_number – порядковый номер вершины полигона)
place_id | loc_lat | loc_lon | point_number |
---|---|---|---|
1 | 55.747022 | 37.787073 | 0 |
1 | 55.751713 | 37.784328 | 1 |
1 | 55.753878 | 37.777638 | 2 |
1 | 55.751031 | 37.779351 | 3 |
2 | 55.803885 | 37.458311 | 0 |
2 | 55.808677 | 37.464054 | 1 |
2 | 55.809763 | 37.461314 | 2 |
2 | 55.810840 | 37.458654 | 3 |
Формат результата:
id | number_of_places_available |
---|---|
1 | 2 |
2 | 19 |
3 | 0 |