Напишіть програму, щоб взяти графік (зі стандартного вводу або з файлу, на ваш вибір) і знайдіть найкоротший шлях у графіку.
Графіки задаються у наступному форматі:
A---S F--T
| / \ |
| / 5 0
|/ \|
D----3--E
A-Z: nodes in the graph
-|/\: edges in the graph
0-9: weights on the edges
<space>: all the holes
Всі ребра є непрямими і лежать уздовж одного з 8 кардинальних напрямків (тобто відсутні вигини). Краї можуть необов'язково містити вагу від 0 до 9. Вага не буде на останньому символі, який з'єднує край із вузлом (тобто краї повинні мати принаймні 3 символи, щоб містити вагу). Невагомі ребра мають типову вагу 1.
Ваш код повинен обчислити найкоротший шлях між вузлами Sі Tта надрукувати довжину і шлях, як це:
5:SDEFT
Найкоротша правильна програма виграє.
Так, ви повинні проаналізувати графік, як я вказав. В цьому і полягає більшість проблем. Найкоротша частина шляху просто гарантує правильний аналіз.
—
Кіт Рендалл
Формат введення насправді занадто складний, і imho насправді не додає такої великої проблеми.
—
JPvdMerwe
Просто думав, що люди хочуть спробувати щось більш складне.
—
Кіт Рендалл
@SimpleCoder: Я б припустив
—
монопростір
AS0,SD0,SE5,DE3,FE0,FT0(ви можете опустити коми, якщо кожен запис має три байти.)