Изменения
→Идея
==Удаляющий обход==
===Идеяи корректность===По-прежнему по одному находятся пути из <tex>s</tex> в <tex>t</tex>Аналогично предыдущей, с сохранением корректности, но применяется следующая оптимизация: однако удалять в процессе обхода в глубину удаляются из графа все ребра"лишние" рёбра, т.е. рёбра, вдоль которых нельзя не получится дойти до стока. То есть, если для текущей вершины <tex>vt</tex> выполнено <tex>dfs(v) = false</tex>, нужно удалить из графа эту вершину и все инцидентные ей ребра. С точки зрения реализации, надо просто поддерживать в списке смежности каждой вершины указатель на первое неудалённое ребро, и увеличивать этот указатель в цикле внутри обхода в глубину.
int dfs (int v, int flow)
{