Pagini recente » Rating Tudor Almasan (ICookie9000) | Cod sursa (job #659762) | Cod sursa (job #606377) | Cod sursa (job #606336)
Cod sursa(job #606336)
#include<fstream.h>
#define N 1001
int n,m,w[N],g[N][N];
long f[N][N],d[N],e[N][N],b[N],c[N],p,q,t,i,j,k,l;
long min(long a,long b)
{if(a<b)
return a;
return b;}
int main()
{ifstream x("maxflow.in");
ofstream y("maxflow.out");
x>>n>>m;
while(m--)
x>>i>>j>>k,g[i][w[i]++]=j,e[i][j]=k;
while(1)
{for(k=1;k<=n;k++)
b[k]=-1;
d[1]=N*N,p=q=0,c[q++]=1;
while(p<q&&b[n]<0)
{t=c[p++];
for(i=0;i<w[t];i++)
if(b[g[t][i]]<0&&(j=e[t][g[t][i]]-f[t][g[t][i]]))
b[c[q++]=g[t][i]]=t,d[g[t][i]]=min(d[t],j);}
if(b[n]<0)
break;
for(l=n;l!=1;l=b[l])
f[b[l]][l]+=d[n],f[l][b[l]]-=d[n];}
for(j=0,i=1;i<=n;i++)
j+=f[1][i];
y<<j;
return 0;}