Задача по программированию из олимпиады
Ваша задача — разработать алгоритм, который на основании входных данных определит порядок проезда автомобилей через перекресток и вернет его в формате JSON.
Формат ввода
Вы получаете JSON-сообщение от умного регулировщика, содержащее следующую информацию:
• Тип перекрестка (type): может быть обычным ("regular") или T-образным ("T-shaped").
• Перечень приоритетных полос (priority_lanes): массив строк, указывающий, какие полосы движения имеют приоритет. Если список пустой, значит ни одна из полос не имеет приоритет.
• Количество автомобилей на перекрестке (vehicle_count): общее количество автомобилей на перекрестке.
• Информация о каждом автомобиле:
o vehicle_id: уникальный идентификатор автомобиля.
o lane: полоса, на которой находится автомобиль.
o direction: направление, в которое движется автомобиль (например, "west", "north" и т.д.).
Дороги в умном городе могут быть в 8 направления:
• "north" — север,
• "north-east" — северо-восток,
• "east" — восток,
• "south-east" — юго-восток,
• "south" — юг,
• "south-west" — юго-запад,
• "west" — запад,
• "north-west" — северо-запад.
Считать, что каждая дорога имеет 2 полосы движения: в прямом и во встречном направлениях.
В случае, если 2 и более автомобилей могут разъехаться одновременно, не создавая помеху друг другу, регулировщик должен назначить им равный приоритет.
Любой автомобиль может ехать из любой полосы в любую полосу.
Формат вывода
Ваш алгоритм должен вернуть JSON-ответ, содержащий порядок проезда автомобилей через перекресток. Ответ должен содержать порядок движения автомобилей. Порядок появления автомобилей в ответе сортируется по vehicle_id. В ответе не может несколько раз появиться один и тот же автомобиль, но у разных автомобилей может быть одинаковый приоритет (если они могут двигаться одновременно, не создавая помеху друг другу). При формировании ответа необходимо соблюдать следующую разметку (количество и места пробелов должны строго соответствовать примеру):
Иллюстрация
Пример
Ввод
{
"intersection": {
"type": "regular",
"priority_lanes": ["north", "south"],
"vehicle_count": 4
},
"vehicles": [
{
"vehicle_id": 1,
"lane": "north",
"direction": "west"
},
{
"vehicle_id": 2,
"lane": "east",
"direction": "north"
},
{
"vehicle_id": 3,
"lane": "south",
"direction": "east"
},
{
"vehicle_id": 4,
"lane": "west",
"direction": "south"
}
]
}
Вывод
{
"order": [
{
"vehicle_id": 1,
"priority": 1
},
{
"vehicle_id": 2,
"priority": 1
},
{
"vehicle_id": 3,
"priority": 1
},
{
"vehicle_id": 4,
"priority": 1
}
]
}
слишком много вопросов.
программирование -- не ваше дело.