Енергетична мережа#5756

Енергетична мережа

1 секунда
64 мегабайти
Середня

Енергетична мережа складається з вузлів (електростанцій, споживачів та диспетчерів), з'єднаних лініями передачі електроенергії. Вузол може мати запас s(u) \geq 0 електроенергії, може виробляти кількість електроенергії 0 \leq p(u) \leq p_{\text{max}}(u), може споживати від до \min(s(u), c_{\text{max}}(u)) електроенергії, і передавати d(u) = s(u) + p(u) - c(u) електроенергії. Діють такі обмеження: c(u) = 0 для електростанцій, p(u) = 0 для споживачів, і p(u) = c(u) = 0 для диспетчерів. У мережі може бути не більше однієї лінії передачі від вузла до вузла , яка передає від до l_{\text{max}}(u, v) електроенергії. Нехай Con = \sum_u c(u) — це загальна спожита електроенергія в мережі. Завдання полягає в обчисленні максимального значення .

На рисунку наведено приклад. Позначка для електростанції означає, що p(u) = x і p_{\text{max}}(u) = y. Для споживача позначка означає, що c(u) = x і c_{\text{max}}(u) = y. Для лінії передачі позначка означає, що l(u, v) = x і l_{\text{max}}(u, v) = y. Спожита електроенергія становить Con = 6. Зверніть увагу, що існують інші можливі стани мережі, але значення не може перевищувати .

Вхідні дані

Вхідний файл містить кілька наборів даних, кожен з яких описує енергетичну мережу. Кожен набір починається з чотирьох цілих чисел: 0 \leq n \leq 100 (кількість вузлів), 0 \leq n_p \leq n (кількість електростанцій), 0 \leq n_c \leq n (кількість споживачів), і 0 \leq m \leq n^2 (кількість ліній передачі). Далі йдуть трійок (u, v)z, де і — ідентифікатори вузлів (починаючи з ), і 0 \leq z \leq 1000 — значення l_{\text{max}}(u, v). Потім йдуть n_p дуплетів , де — ідентифікатор електростанції і 0 \leq z \leq 10000 — значення p_{\text{max}}(u). Набір даних завершується n_c дуплетами , де — ідентифікатор споживача і 0 \leq z \leq 10000 — значення c_{\text{max}}(u). Усі вхідні числа є цілими. Окрім трійок (u, v)z і дуплетів , які не містять пробілів, пробіли можуть вільно зустрічатися у вхідних даних. Вхідні дані завершуються кінцем файлу і є коректними.

Вихідні дані

Для кожного набору даних програма повинна вивести на стандартний вихід максимальну кількість електроенергії, яку можна спожити у відповідній мережі. Кожен результат має бути цілим числом і виводитися з початку окремого рядка.

Приклади

Приклад 1

Loading
Loading