Дана сеть: n вершин, список рёбер edges (каждое - [u, v, пропускная способность], возможны кратные рёбра между одной парой), источник source и сток sink.
Верните величину максимального потока из source в sink (алгоритм Эдмондса-Карпа: пока в остаточной сети есть путь из source в sink, ищите его через BFS и проводите по нему максимально возможный поток).
Сигнатура функции
max_flow(n: int, edges: list[list[int]], source: int, sink: int) -> int