eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Задача Комівояжера

Задача Комівояжера

Старий мудрий Комівояжер прожив досить довге життя, знаходячись у постійних подорожах. Він лише тим і займався, щто їздив по містам та продавав товари. У комівояжерських колах його знали, як головного спеціалиста по знаходженню самих вигідних маршрутів. Ще б пак, адже у свій час йо довелось вивчити метод гілок та границь для того, щоб обирати найменш затратні маршрути. І вот Комівояжер вирішив відправитись в останню перед пенсією ділову поїздку. Із-за проблем зі здоров'єм йому прийшлось відмовитись від ідеї побувати у всіх \textbf{N} поблизу розміщених містах. Він подумав, що непогано було б відвідати старих товаришів, які проживають у деяки \textbf{M} містах. Інші міста не представляють інтересу, і заїхати до них можно лише тоді, якщо вони розміщені на шляху подорожі. Звичайно, Комівояжера цікавить самий вигідний маршрут. Допоможіть старому організувати останню поїздку. \InputFile У першому рядку вхідного файла два цілих числа \textbf{K} (\textbf{1} ≤ \textbf{K} ≤ \textbf{100}) і \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{20}). Наступні \textbf{K} рядків містять описи доріг. У кожному рядку 3 числа -- номер пункту відправлення, номер пункту призначення та вартість поїздки. Вартість переміщення по заданій дорозі однакова у обох напрямках. Між двома пунктами може бути більше однієї дороги. У наступному рядку число \textbf{M} (\textbf{1} ≤ \textbf{M} ≤ \textbf{10}) -- кількість міст, які потрібно обов'язково відвідати хоча б один раз. У останньому рядку перераховані номери цих міст. Причому перше місто у списку -- це місто, з якого починає свій шлях Комівояжер, а останнє --у якому завершує. \OutputFile У вихідний файл потрібно вивести єдине число - вартість самого вигідного шляху.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
3 3
1 2 3
2 3 100
1 3 5
3
1 2 3
Вихідні дані #1
11