Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;const int maxN = 505;const int inf = 0x3f3f3f3f;int cf[maxN][maxN];int pre[maxN], cap[maxN];int Q[maxN], visited[maxN];map<int, set<int>> neighbour;int a, b, c;int n, m;int find_cf(){memset(visited, 0, sizeof(visited));int p = 0, q = 0;Q[q++] = 1;cap[1] = inf;while(p < q){int u = Q[--q];for(auto v : neighbour[u]){if(cf[u][v] > 0 && !visited[v]){cap[v] = min(cap[u], cf[u][v]);pre[v] = u;if(v == n)return cap[v];visited[v] = 1;Q[q++] = v;}}}return 0;}int main(){