Олимпиадный тренинг

Задача . Vacation Planning


Задача

Темы:

Air Bovinia планирует соединить N ферм (1 <= N <= 200), в которых живут
коровы. K из этих ферм выбраны как хабы (1 <= K <= 100, K <= N).
Фермы пронумерованы от 1 до N, при этом фермы 1..K являются хабами.

Сейчас имеется M (1 <= M <= 10,000) однонаправленных полётов.
Полёт I происходит из фермы ui в ферму vi, с ценой di долларов
(1 <= di <= 1,000,000).

Авиакомпания получила требование на Q (1 <= Q <= 10,000)
однонаправленных путешествий. I-ое путешествие из фермы ai в ферму bi.
Путешествие может включать любую последовательность прямых перелётов,
(возможно даже посещая одну и туже ферму несколько раз),
но эта последовательность должна включать как минимум один хаб
(который может быть а может и не быть в ферме старта или назначения).
Следствием последнего требования может быть отсутствие корректного
маршрута из ai в bi. Для всех остальных путешествий Ваша цель
помочь Air Bovinia определить минимальную стоимость корректного маршрута.

PROBLEM NAME: vacation

Формат входных данных

* Строка 1: Четыре целых числа: N, M, K, Q.

* Строки 2..1+M: Строка i+1 содержит ui, vi, di для полёта i.

* Строки 2+M..1+M+Q: Строка 1+M+i описывает i-ое путешествие в терминах ai bi

Формат выходных данных

* Строка 1: Количество путешествий (из Q) для которых существует
корректный маршрут

* Строка 2: Сумма всех корректных минимальных маршрутов.

Примечание

Путешествие из 3 в 2 может быть осуществлено единственным способом
с ценой 10+7. путешествие из 2 в 3 невозможно, поскольку из 2 нет
ни одного полёта. Путешествие из 1 в 2 возможно единственным способом
с ценой 7.


Примеры
Входные данныеВыходные данные
1 3 3 1 3
3 1 10
1 3 10
1 2 7
3 2
2 3
1 2
2
24

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя