diff --git a/graph/edmonds-karp.cc b/graph/edmonds-karp.cc index 6c2acc8..fa10384 100644 --- a/graph/edmonds-karp.cc +++ b/graph/edmonds-karp.cc @@ -4,15 +4,16 @@ struct edmonds_karp { ll cap; ll flow; pair rev; + bool mark; }; vector> edges; edmonds_karp(int n) : edges(n + 1) {} - void add_edge(int from, int to, ll cap) { - edges[from].push_back({to, cap, 0, make_pair(to, int(edges[to].size()))}); - edges[to].push_back({from, 0, 0, make_pair(from, int(edges[from].size() - 1))}); + void add_edge(int from, int to, ll cap, bool mark = false) { + edges[from].push_back({to, cap, 0, make_pair(to, int(edges[to].size())), mark}); + edges[to].push_back({from, 0, 0, make_pair(from, int(edges[from].size() - 1)), mark}); } ll run(int s, int t) {