Pagini recente » Cod sursa (job #1615912) | Profil HornaiVlad | Cod sursa (job #451576) | Istoria paginii utilizator/seven_7mm | Cod sursa (job #1624207)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define NMAX 1001
#define oo 0x3f3f
using namespace std;
int n,m,F[NMAX][NMAX],C[NMAX][NMAX],flux,s,d,x,y,r;
int T[NMAX],q[NMAX];
ifstream f("maxflow.in");
ofstream g("maxflow.out");
int BF()
{
int i,k,p,u;
p=u=0;
for(i=1;i<=n;i++)
T[i]=0;
q[0]=s;
T[s]=-1;
for(;p<=u;p++)
{
k=q[p];
for(i=1;i<=n;i++)
if(!T[i]&&C[k][i]>F[k][i])
{
q[++u]=i;
T[i]=k;
if(i==d)return 1;
}
}
return 0;
}
int main()
{
f>>n>>m>>s>>d;
for(int i=1;i<=m;i++)
{
f>>x>>y;
f>>C[x][y];
}
int i;
for(;BF();flux+=r)
{
r=oo;
for(i=d;i!=s;i=T[i])
r=min(r,C[T[i]][i]-F[T[i]][i]);
for(i=d;i!=s;i=T[i])
F[T[i]][i]+=r;
}
g<<flux;
return 0;
}