Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <vector>#include <cstring>#include <iostream>#include <algorithm>const int maxn = 407;const int inf = 1 << 30;int n, m, E_cnt, S, T;int head[maxn], dis[maxn], que[maxn];struct Edge{int v, cap,next;Edge() {}Edge(int v, int cap, int next): v(v), cap(cap), next(next) {}}edges[maxn * 200];void init(){E_cnt = 0;memset(head, -1, sizeof(head));}void addEdge(int u, int v, int cap){edges[E_cnt] = Edge(v, cap, head[u]); head[u] = E_cnt ++;edges[E_cnt] = Edge(u, 0, head[v]); head[v] = E_cnt ++;}bool bfs()