В этом задании будут использоваться данные JSON с сайта data.mos.ru. При этом данные будут перекодированы в UTF8, на сайте data.mos.ru данные лежат в кодировке CP1251.
Для изучения структуры JSON, скачанных с data.mos.ru, можете воспользоваться этим online-просмотрщиком JSON или найти другое приложение.
Как всегда, ввод-вывод в задачах этого листка может быть как стандартным, так и файловым (input.txt/output.txt). Используемая кодировка для русских букв: UTF8.
В большинстве задач тесты такие, что ответ однозначный (например, станция с наибольшим числом выходов только одна).
Изучите набор данных “Входы и выходы вестибюлей станций Московского метрополитена”.
Под станцией мы будем подразумевать уникальную комбинацию названия станции и названия линии. Например, станция Арбатская Филёвской линии и станция Арбатская Арбатско-Покровской линии — это разные станции.
Определите станцию с самым большим числом выходов, самую северную, самую южную, самую западную, самую восточную станции. Выводите название станции и название линии метро. В первой строке также выведите количество выходов с этой станции.
Пример вывода (неправильный, для некоторого сокращённого набора данных) ниже. Следуйте этому примеру.
Вывод |
---|
Больше всего выходов: Красногвардейская, Замоскворецкая линия, 2 Самая северная: Алтуфьево, Серпуховско-Тимирязевская линия Самая южная: Орехово, Замоскворецкая линия Самая западная: Строгино, Арбатско-Покровская линия Самая восточная: Лермонтовский проспект, Таганско-Краснопресненская линия |
Изучите набор данных “Общественное питание в Москве”.
Под “заведением” будем подразумевать один объект в этой базе. У заведения бывают разные атрибуты: район, количество посадочных мест, вид (кафе, столовая, ресторан и т.д.). Бывают сетевые заведения.
Найдите район Москвы, в котором находится больше всего заведений. Выведите район и количество заведений в нём.
Определите все виды заведений. Для каждого вида найдите самое большое заведение этого вида. Выведите название заведения и количество мест в нём. Упорядочите строки по виду заведения.
Определите сеть с самым большим числом заведений. Выведите название сети и количество заведений сети.
Определите сеть с самым большим суммарным числом посадочных мест. Выведите название сети и количество мест в заведениях этой сети.
Пример вывода (неправильный, для некоторого сокращённого набора данных) ниже. Следуйте этому примеру.
Вывод |
---|
Район с наибольшим числом заведений: Тверской район, 3 Самое большое заведение вида бар: Гадкий кайот, 120 Самое большое заведение вида кафе: Mesto 20.1, 49 Самое большое заведение вида предприятие быстрого обслуживания: KFC, 60 Самое большое заведение вида ресторан: Караоке «City Voice», 112 Самое большое заведение вида столовая: ВЕРОНА СТОЛОВАЯ ШКОЛЫ № 1467, 240 Самая большая сеть по числу заведений: KFC, 3 Самая большая сеть по числу мест: KFC, 80 |
Изучите набор данных “Бассейны плавательные крытые”.
Старые наборы данных о бассейнах содержали информацию о зимнем и летнем периоде работы, но последний набор данных содержит информацию только о зимнем периоде работы, а данные о летнем периоде работы отсутствуют. Чтобы ваша программа корректно работала как на старых, так и на новых наборах данных, мы будем рассматривать только зимний период работы.
Вы хотите пойти в бассейн, например, с 08:00 до 09:00 в понедельник. Для этого вы хотите найти бассейн, который работает в это время. Вы любите плавать по длинным дорожкам, поэтому из всех работающих в это время бассейнов вы выберете бассейн с наибольшей длиной дорожки. При равной длине дорожки вы выберете бассейн с наибольшей шириной.
Обратите внимание, что у некоторых бассейнов время закрытия может быть после полуночи, например, 08:00-00:30
.
Мы же считаем, что вы не любите ходить в бассейн по ночам, поэтому время вашего посещения бассейна будет заканчиваться
раньше полуночи. Ну и помимо этого вас могут ждать различные сюрпризы в данных. Поэтому обязательно скачайте оригинальный
набор данных и поэкспериментируйте с ним.
Определите бассейн, который вы хотите посетить. В случае нескольких подходящих бассейнов, выведите адрес одного (любого) из них.
В этой задаче входные данные будут отличаться от оригинальных данных с data.mos.ru. А именно, в начало списка бассейнов будет добавлен ещё один объект с информацией о том, когда вы хотите посетить бассейн. Входные данные будут иметь следующий вид:
[ // В начале - объект с информацией о времени посещения {'Hours': '08:00-09:00', 'DayOfWeek': 'понедельник'} // Затем - объекты с данным о бассейнах с data.mos.ru { "NameSummer": "бассейн плавательный крытый", "global_id": 1047358249 // и т.д. } ]
Выведите в первой строке через пробел длину и ширину бассейна, в который вы пойдёте. Во второй строке выведите адрес этого бассейна.
Пример вывода (неправильный, для некоторого сокращённого набора данных) ниже. Следуйте этому примеру.
Вывод |
---|
25 16 Писцовая улица, дом 12, строение 1 |
Вспомните, как считать расстояние между двумя точками на шаре. При этом можно предполагать, что в пределах Москвы поверхность Земли является плоской.
Изучите набор данных “Дорожки велосипедные”.
Найдите самую длинную велодорожку. Выведите описание расположения этой дорожки и её длину в метрах.
Обратите внимание, что велодорожка может состоять из нескольких сегментов (ломаных линий). Под длиной велодорожки подразумевается сумма длин всех сегментов. В первом тесте (см. пример) длина ответа как раз является такой суммой.
Пример вывода (неправильный, для некоторого сокращённого набора данных) ниже. Следуйте этому примеру.
Вывод |
---|
от Юрловского проезда дом 14 до Сельскохозяйственной дом 64 2251 |