Task2

Яндекс.Еда осуществляет доставку еды из ресторанов. При этом у каждого ресторана есть зона, в рамках которой осуществляется доставка. Зона представляет собой полигон (заданы координаты его вершин). Пользователь в зависимости от своего местоположения (координат точки) видит разное количество доступных ресторанов. Нам важно, чтобы у каждого пользователя было достаточное количество ресторанов для выбора. Задача заключается в том, чтобы для каждого пользователя посчитать доступное ему количество ресторанов.

Использовать 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