#include #include #include #include using namespace std; const int maxn=300;//agar graph por yal nabashad ta 400 ham javab midahad int n, m, s, t, flow[maxn][maxn], capacity[maxn][maxn], par[maxn]; vector G[maxn]; bool vis[maxn]; bool bfs(int s){ // masir afzayeshi ra ezafe ham mikonad fill(vis, vis+n, 0); fill(par, par+n, -1); vis[s] = true; queue qu; qu.push(s); while(qu.size()>0){ int u = qu.front(); qu.pop(); for(int i=0; i 0){ // ba tavajjoh be manfi boodane flow dar halate barax va 0 boodane capacity dar in halat meghdare bala dar har halati hadde axar mizane ezafe shodan ra midahad vis[v] = true; qu.push(v); par[v] = u; } } } if(par[t]==-1) return false; vector path; int k=t; path.push_back(k); while(k!=s){ k=par[k]; path.push_back(k); } reverse(path.begin(), path.end()); int minimum;// mohasebe meghdari ke mitavan be flow ezafe kard for(int i=0; i> n >> m >> s >> t; for(int i=0; i> u >> v >> cap; u--, v--; capacity[u][v] = cap; G[u].push_back(v); G[v].push_back(u); // tavajjoh dashte bashid ke ma har 2 taraf ra be liste mojaverat ezafe mikonim //dar bfs daghigh tar karborde in kar ra mibinid } while(bfs(s)); int flowsize=0; for(int u=0; u