Codeforces Round 124 (Div. 1) |
---|
Закончено |
Павел играет в одну известную компьютерную игру. Игроку предоставлена в распоряжение целая страна, где можно свободно путешествовать, выполнять квесты и набирать опыт.
В этой стране n городов, соединенных m двусторонними дорогами различной длины так, что из каждого города можно добраться до каждого. В k из этих городов имеются порталы. В начале игры все порталы закрыты. Когда игрок посещает город, в котором есть портал, этот портал становится открытым. Из открытого портала в открытый можно, как ни странно, телепортироваться. Телепортация происходит мгновенно, что дает возможность игроку быстро перемещаться между довольно удаленными областями страны.
В начале игры Павел находится в городе с номером 1. Он хочет как можно быстрее открыть все порталы. Какое наименьшее время ему для этого потребуется?
В первой строке через пробел записано два целых числа n и m (1 ≤ n ≤ 105, 0 ≤ m ≤ 105) — количества городов и дорог в игре.
В каждой из следующих m строк содержится описание дороги — три целых числа xi, yi, wi, записанные через пробел (1 ≤ xi, yi ≤ n, xi ≠ yi, 1 ≤ wi ≤ 109) — номера городов, соединенных i-ой дорогой и время, необходимое на ее преодоление. Между любыми двумя городами проведено не более одной дороги. Гарантируется, что из любого города можно добраться до любого, двигаясь по дорогам страны.
В следующей строке записано целое число k (1 ≤ k ≤ n) — количество порталов.
В следующей строке через пробел записаны k целых чисел p1, p2, ..., pk — номера городов, в которых установлены порталы. В каждом городе установлено не более одного портала.
Выведите единственное число — минимальное время, которое требуется игроку, чтобы открыть все порталы.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-битных чисел на C++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.
3 3
1 2 1
1 3 1
2 3 1
3
1 2 3
2
4 3
1 2 1
2 3 5
2 4 10
3
2 3 4
16
4 3
1 2 1000000000
2 3 1000000000
3 4 1000000000
4
1 2 3 4
3000000000
Во втором примере игрок должен прийти в город 2, открыть в нем портал, затем отправиться в город 3, открыть там портал, телепортироваться обратно в город 2 и, наконец, завершить свое путешествие в городе 4.
Название |
---|