Філософи давно обдумували проблему Тролейбуса . На жаль, ще ніхто не вирішив цю проблему. На щастя, як програмісти ми можемо використовувати комп’ютери для вирішення проблеми для нас!
Вхідні дані
Ваша програма прийме як вхід графік (кінцево), орієнтований (максимум на один край від x
до y
, для будь-якого x
і y
), із визначеним вузлом та неотриманім цілим числом, приєднаним до кожного краю (що представляє кількість людей, прив’язаних до цієї доріжки) . Крім того, кожен вузол має щонайменше один край виходу.
Візок запускається у визначений вузол. Кожен поворот, якщо візка знаходиться у вузлі x
, утилітарна обирає край (x,y)
. Люди на цьому краю вмирають, і візок зараз на краю y
. Цей процес триває назавжди.
Зауважте, що люди можуть померти лише один раз, тому якщо на краю (x,y)
є n
люди, прив'язані до нього, і візок перебігає їх, скажімо, 100 разів, це все одно призведе до n
смерті.
Вихідні дані
Утилітаризм робить свій вибір таким чином, щоб мінімізувати кількість людей, які помирають (що гарантовано буде кінцевим, оскільки є лише обмежені люди). Ваша програма виведе це число.
Формат введення
Ви можете взяти графік вводу будь-яким розумним способом. Наприклад, ви можете взяти його як матрицю і порахувати позначений вузол як той, що позначений 0. Якщо ви можете використовувати щось на зразок x1,y1,n1;x2,y2,n2;...
. Наприклад, 0,a,0;a,b,5;a,c,1;b,b,0;c,c,0
представити стандартну проблему з візками (з петлями в кінці).
Тестові шафи
0,a,0;a,b,5;a,c,1;b,b,0;c,c,0
-> 1 (Перехід від 0 до a, a до c (вбивство однієї людини), а потім продовжуйте петлю візка від c до c).0,0,1;0,a,5;a,a,0
-> 1 (продовжуйте рухатись від 0 до 0, бігати над 1 людиною на всю вічність),0,a,5;0,b,1;a,a,1;b,b,6
-> 6 (0 -> a -> a -> a -> a -> ... (зауважте, що жадібне рішення переходу на b було б неправильним))0,a,1;0,b,5;a,b,1;b,a,1
-> 3 (0 -> a -> b -> a -> b -> ...)0,a,1;0,b,1;a,a,0;b,b,0
1
Це код-гольф , тому найкоротша відповідь виграє! Удачі.
Примітки: Не буде жодних циклів хворої петлі, а переміщення багатодоріжок заборонено. Крім того, хоча я вважаю за краще вважати цю проблему з точки зору трьох законів Асимова Пітер Тейлор зазначив у пісочниці, що ця проблема є математично еквівалентною проблемі пошуку rho (шлях, коли петлі повертаються на себе) з найменшою вагою .