Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void BFS()
- {
- int u,v,i,l;
- while(!Q.empty()) Q.pop();
- memset(check,false,sizeof(check));
- memset(p,-1,sizeof(p));
- for(i=source; i<=sink; i++) d[i]=INF;
- d[1]=0;
- queue<int>Q;
- Q.push(1);check[1]=true;
- while(!Q.empty())
- {
- u=Q.front();
- Q.pop();
- //printf("u:%d\n",u);
- check[u]=false;
- l=adj[u].size();
- for(i=0; i<l; i++)
- {
- v=adj[u][i];
- if(cap[u][v]-flow[u][v]>0 && d[v]>d[u]+cost[u][v])
- {
- d[v]=d[u]+cost[u][v];
- p[v]=u;
- if(!check[v])
- {
- check[v]=true;
- Q.push(v);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment