В этой задаче вам придётся иметь дело с очень специфичной ориентированной сетью (взвешенным ориентированным графом).
Сеть состоит из двух частей: части A и части B. Каждая часть состоит из n вершин; i-ю вершину части A будем обозначать как Ai, а i-ю вершину части B — как Bi.
Для каждого i (1 ≤ i < n) существует ориентированное ребро из Ai в Ai + 1, а также из Bi в Bi + 1. Пропускные способности этих рёбер заданы во входных данных. Также может быть несколько рёбер, ведущих из A в B (но нет таких рёбер, которые ведут из B в A).
Вам необходимо посчитать величину максимального потока из A1 в Bn в данной сети. Пропускные способности рёбер, ведущих из Ai в Ai + 1, также могут иногда меняться, и вам нужно пересчитывать величину потока после этих изменений. Вся остальная часть сети фиксирована (не происходит никаких изменений в части B, никаких изменений рёбер, ведущих из A в B, никакие рёбра не добавляются и не удаляются).
Посмотрите на пример и пояснение к нему, чтобы лучше понять структуру сети.
Выходные данные
Сначала выведите величину максимального потока в исходной сети. Затем выведите q чисел, i-е из которых должно быть равно величине максимального потока после i-го изменения.
Примечание
В примере до всех изменений сеть выглядит так:
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 3 2 1 2 3 4 5 6 2 2 7 1 4 8 4 3 9 1 100 2 100
|
9
14
14
|