"Я хочу піти на базар в Арабі, щоб купити подарунок для того, в кого я закохався. Однак, якщо я приїду занадто пізно, всі магазини будуть закриті, і я не зможу нічого придбати. Чи можете ви допомогти я? "
Мета: Дістати хлопчика до Арабі з вулиці Північна Річмонд, перш ніж усі магазини закрити.
Фактична мета: переконайтесь, що хлопець не приїде в Арабі до закриття магазинів.
Ваша програма прийме вхід у такому форматі:
<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до a21 години. Якщо він їде по маршруту 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