diff --git a/atcoder/maxflow.hpp b/atcoder/maxflow.hpp index c95ce82..6f535b9 100644 --- a/atcoder/maxflow.hpp +++ b/atcoder/maxflow.hpp @@ -99,8 +99,9 @@ template struct mf_graph { g[v][i].cap += d; g[e.to][e.rev].cap -= d; res += d; - if (res == up) break; + if (res == up) return res; } + level[v] = _n; return res; }; @@ -109,11 +110,9 @@ template struct mf_graph { bfs(); if (level[t] == -1) break; std::fill(iter.begin(), iter.end(), 0); - while (flow < flow_limit) { - Cap f = dfs(dfs, t, flow_limit - flow); - if (!f) break; - flow += f; - } + Cap f = dfs(dfs, t, flow_limit - flow); + if (!f) break; + flow += f; } return flow; }