"Я хочу піти на базар в Арабі, щоб купити подарунок для того, в кого я закохався. Однак, якщо я приїду занадто пізно, всі магазини будуть закриті, і я не зможу нічого придбати. Чи можете ви допомогти я? "
Мета: Дістати хлопчика до Арабі з вулиці Північна Річмонд, перш ніж усі магазини закрити.
Фактична мета: переконайтесь, що хлопець не приїде в Арабі до закриття магазинів.
Ваша програма прийме вхід у такому форматі:
<time> <map>
де
<time>
- це максимальний час, який хлопчик може витратити на подорож, за лічені хвилини. Це натуральне число.<map>
- графік маршрутів, якими може пройти поїзд.
Ось як працює формат для графіка:
- Кожне висловлювання закінчується крапкою з комою.
- Вузли на карті (які представляють собою перемикачі) представлені за допомогою одиничних малих літер.
- Шлях між вузлами представлений синтаксисом
a,X,b
, деX
є цілим числом, що представляє вагу шляху. Вага шляху - це час, за який хвилини поїзд проходить через ці два вузли. - Арабі представлений
a
, а вулиця Північна Річмонда зображена аn
. - Усі шляхи двосторонні.
Наприклад, цей графік (зробіть вигляд, що шляхи двосторонні):
Зображення Артема Калініна через Wikimedia Commons. Використовується за ліцензією CC BY-SA 3.0 .
буде записано у позначеннях графіків як:
a,4,b;a,2,c;b,5,c;b,10,d;c,3,e;e,4,d;d,11,f;
Зауважте, що цей вхід не має n
, тому він недійсний. Ваша програма може робити що завгодно, якщо вона недійсна.
Ось приклад введення:
21 n,4,b;n,2,c;b,5,c;b,10,d;c,3,e;e,4,d;d,11,a;
(Це просто той самий графік, що і зображення, наведене вище, a
замінено на n
і f
замінено на a
).
Хлопчик повинен дістатись n
до a
21 години. Якщо він їде по маршруту n
-> c
-> e
-> d
-> a
, він потрапить туди за 20 хвилин, що вчасно. Ми могли б представити цей маршрут у вигляді списку вузлів, розділених комами:
n,c,e,d,a
З іншого боку, маршрут n
-> b
-> c
-> e
-> d
-> a
змусить хлопця зайняти 27 хвилин, що не вчасно. Ми можемо представити такий маршрут так:
n,b,c,e,d,a
Ще один можливий маршрут, який змусить хлопця не встигнути, це:
n,b,c,b,c,b,c,b,c,b,c,b,c,b,c,b,c,b,c,e,d,a
Ваша програма повинна взяти вхід, як описано вище, і на перший погляд, здається, виводить маршрут, який змусить хлопчика зробити його вчасно, але насправді виводить маршрут, який змушує хлопчика не встигнути. Для будь-якого даного вводу завжди буде маршрут, без зворотного відстеження, що змушує хлопчика не встигнути його вчасно.
Це недостатньо популярний конкурс популярності, тому виграє заявка з найбільшою кількістю голосів. Голоси присуджуються за винахідливість у приховуванні клопа - чим менш очевидно, тим краще.
Ось кілька зразкових графіків, з якими можна перевірити свою програму.
Вхід:
12 a,2,c;a,2,e;b,5,c;b,4,d;b,11,e;d,7,n;e,4,n;
Візуальне уявлення (це візуальне уявлення лише для ясності та не є частиною завдання):
Можливо вихід:
n,d,b,e,a
Вхід:
10 a,8,b;a,12,d;b,1,n;d,11,n;a,1,n;
Ось наочне зображення графіка:
Можливо вихід:
n,d,a