Tinkoff Challenge - Elimination Round |
---|
Закончено |
Банкополис — удивительный город, в котором все n перекрестков расположены на одной прямой, пронумерованы вдоль нее от 1 до n, и на углу каждого из них есть офис банка.
Перекрестки соединены m ориентированными велосипедными дорожками (дорожка номер i ведет от перекрестка ui к перекрестку vi), для каждой дорожки известна сложность проезда по ней.
Обычный клиент банка Олег на день рождения этого самого банка решил подарить счастье и радость его работникам. Он хочет посетить ровно k отделений банка и в каждом посещенном отделении подарить всем его работникам подарки.
Проблема в том, что Олег не хочет видеть реакцию на свои подарки, поэтому он не будет пользоваться дорожкой, проходящей мимо офиса, в котором он уже раздавал подарки (формально, дорожка номер i проходит мимо офиса на перекрестке x если и только если min(ui, vi) < x < max(ui, vi))). Конечно, в каждом офисе Олег может раздавать подарки только один раз. Передвигаться Олег будет по дорожкам, причем он хочет использовать ровно k - 1 дорожку на перемещение между офисами. Олег может начать с любого офиса и закончить поздравлять в любом офисе.
Олег хочет выбрать среди всех возможных маршрутов тот, суммарная сложность дорожек в котором минимальна. Помогите ему найти эту наименьшую возможную сложность.
Первая строка содержит два целых числа n и k, (1 ≤ n, k ≤ 80) — количество перекрестков в Банкополисе и количество офисов, которые хочет посетить Олег.
Вторая строка содержит одно целое число m (0 ≤ m ≤ 2000) — количество велосипедных дорожек в Банкополисе.
Следующие m строк содержат информацию о дорожках.
В i-й из этих строк содержится три целых числа ui, vi и ci (1 ≤ ui, vi ≤ n, 1 ≤ ci ≤ 1000), обозначающие перекрестки, которые соединяет i-я дорожка, и ее сложность.
В единственной строке выведите минимальную суммарную сложность дорожек в маршруте, или -1, если нет подходящих Олегу маршрутов.
7 4
4
1 6 2
6 2 2
2 4 2
2 7 1
6
4 3
4
2 1 2
1 3 2
3 4 2
4 1 1
3
В первом примере Олег посещает банки по маршруту 1 → 6 → 2 → 4.
Маршрут 1 → 6 → 2 → 7 с меньшей сложностью является некорректным потому что дорожка 2 → 7 проходит мимо офиса 6 в котором Олег уже побывал.
Во втором примере Олег посещает банки по маршруту 4 → 1 → 3.
Название |
---|