Codeforces Beta Round 41 |
---|
Закончено |
Володя — мастер искажений. Он обладает уникальной способностью — строить портальчики! Имея два местоположения в пространстве, Володя может построить портальчик, позволяющий перемещаться между ними в любом из двух направлений. К сожалению, такое действие не обходится Володе даром, и при каждом строительстве редеет на несколько волос его и так, скажем откровенно, не очень-то густая шевелюра.
Из-за своих экстраординарных способностей, Володя привлек внимание военных. Ему поручено особо важное задание. Но обо всем по порядку.
Военная база представляет собой несколько подземных объектов, некоторые из которых соединены между собой двусторонними тоннелями, причем так, что между любыми двумя объектами есть путь по тоннелям. Ровно два объекта имеют выходы на поверхность. Для охраны тоннелей действует патрульный, который каждый день спускается в любой из объектов, имеющих выход, обходит все тоннели и выходит на поверхность через любой из объектов, имеющих выход. Он может входить и выходить через один и тот же объект, а может через разные. Руководство военной базы заметило, что патрульный проходит через некоторые тоннели по несколько раз, и решило оптимизировать схему патрулирования. Перед военными встала задача: построить систему портальчиков между объектами так, чтобы патрульный мог совершать свой обход, проходя по каждому тоннелю ровно один раз. При этом через портальчики патрульный может проходить неограниченное число раз.
Здесь-то и вступает в дело Володя: планирование и постройку системы порталов решили поручить именно ему. К несчастью для Володи, из-за строгой секретности ему не сообщили расположения тоннелей, но потребовали, чтобы система порталов выполняла задачу в любом случае. Тем не менее, некоторой информацией Володя располагает: ему известно, между какими парами объектов он может построить порталы и во сколько волос они обойдутся. Более того, завтра Володе обещают сообщить, какие два объекта имеют выходы на поверхность. Конечно же, Володя решил не терять времени и посчитать минимальные стоимости постройки для нескольких вероятных, по его мнению, пар объектов. Помогите ему!
В первой строке входных данных задано натуральное число n (2 ≤ n ≤ 100000) — количество объектов на секретной базе. Во второй строке — число m (1 ≤ m ≤ 200000) — количество портальчиков, которые потенциально могут быть построены Володей. Каждая из последующих m строк содержит описание портальчика — три целых числа a, b, c (1 ≤ a, b ≤ n, 1 ≤ c ≤ 100000) — номера объектов, которые могут быть соединены, и число волос, которыми Володе придется пожертвовать.
Следующая строка содержит одно натуральное число q (1 ≤ q ≤ 100000) — число запросов. Наконец, последние q строк содержат описания запросов — пары различных номеров объектов ai, bi (1 ≤ ai, bi ≤ n, ai ≠ bi)
Среди портальчиков, которые может построить Володя, могут быть соединяющие одни и те же пары объектов.
Выведите q строк, по одной для каждого запроса. В i-ой строке должно содержаться одно число — ответ на i-ый (в порядке перечисления во входных данных) запрос: минимальная стоимость (в волосах) системы порталов, позволяющей совершать обход для любой системы тоннелей, удовлетворяющей условиям, когда ai-ый и bi-ый объекты имеют выходы на поверхность, или "-1", если построить такую систему порталов нельзя.
2
1
1 2 3
1
1 2
0
3
1
1 2 3
2
1 2
1 3
-1
3
Название |
---|