eolymp
bolt
Try our new interface for solving problems
Problems

Поток в меняющейся сети

Поток в меняющейся сети

Задана ориентированная сеть, с которой производят два вида операций. Первая операция увеличивает на \textbf{1 }пропускную способность ребра из \textbf{x} в \textbf{y}, а вторая операция уменьшает на \textbf{1} пропускную способность ребра из \textbf{x} в \textbf{y}. Ваша задача выводить значение максимального потока в сети из вершины \textbf{1} в вершину \textbf{n} после каждой из операций. \InputFile В первой строке записаны целые числа \textbf{n}, \textbf{m} (\textbf{2} ≤ \textbf{n} ≤ \textbf{150}, \textbf{0} ≤ \textbf{m} ≤ \textbf{2000}), где \textbf{n} --- это количество вершин в сети, а \textbf{m} --- количество рёбер. Далее в \textbf{m} строках перечислены сами рёбра (\textbf{x}, \textbf{y}) с пропускной способностью \textbf{c} по одному в строке тройками чисел \textbf{x}, \textbf{y}, \textbf{c} (\textbf{1} ≤ \textbf{x}, \textbf{y} ≤ \textbf{n}, \textbf{1} ≤ \textbf{c} ≤ \textbf{1000}). Далее входные данные содержат число \textbf{t} (\textbf{1} ≤ \textbf{t} ≤ \textbf{500}), где \textbf{t} --- количество операций производимых над сетью. Затем \textbf{t} строк содержат каждую из операций. Операции задаются последовательностями "\textbf{1 x y}" и "\textbf{2 x y}" в зависимости от типа. Сеть в любой момент времени не содержит кратных рёбер и петель. Пропускная способность любого ребра в сети в любой момент времени --- неотрицательна. \OutputFile Выведите \textbf{t+1} число. В качестве первого числа выведите значение максимального потока в заданной сети до произведения всех операций. Далее выведите \textbf{t} чисел --- значения максимального потока после каждой операции.
Time limit 1 second
Memory limit 64 MiB
Input example #1
4 5
1 2 15
2 3 5
3 4 15
1 3 5
2 4 5
2
1 2 3
2 1 3
Output example #1
15
16
15