Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<queue>using namespace std;int m,n,ans;struct edge{int to,next,f;}e[200005];int head[20005],p;void addedge(int u,int v,int f){e[p].to=v;e[p].f=f;e[p].next=head[u];head[u]=p;p++;e[p].to=u;e[p].f=0;e[p].next=head[v];head[v]=p;p++;}int level[20005];bool bfs(int s,int t){memset(level,0,sizeof(level));queue<int> q;q.push(s);level[s]=1;while(!q.empty()){int u=q.front();q.pop();if(t==u)return 1;for(int i=head[u];i!=-1;i=e[i].next){int v=e[i].to,f=e[i].f;if(level[v]==0&&f!=0)q.push(v),level[v]=level[u]+1;}