| 10 | memset(head = new int[n], -1, n*sizeof(int)); } |
| 11 | void reset() { e = e_store; } |
| 12 | void add_edge(int u, int v, int uv, int vu=0) { |
| 13 | e.push_back(edge(v,uv,head[u])); head[u]=(int)size(e)-1; |
| 14 | e.push_back(edge(u,vu,head[v])); head[v]=(int)size(e)-1;} |
| 15 | int augment(int v, int t, int f) { |
| 16 | if (v == t) return f; |
| 17 | for (int &i = curh[v], ret; i != -1; i = e[i].nxt) |