Pagini recente » Cod sursa (job #2570681) | Monitorul de evaluare | Cod sursa (job #774086) | Cod sursa (job #3285346) | Cod sursa (job #1472438)
#include<stdio.h>
int i,j,n,m,y,l,k,w[1001],g[1001][1001],e[1001][1001],b[1001],c[5000];
int main() {
freopen("maxflow.in","r",stdin),freopen("maxflow.out","w",stdout),scanf("%d%d",&n,&m);
while(m--)
scanf("%d%d%d",&i,&j,&l),g[i][w[i]++]=j,e[i][j]=l;
while(1) {
for(j=1;j<=n;j++)
b[j]=0;
for(l=1000001,j=c[0]=c[1]=1;j<=c[0]&&!b[n];j++)
for(k=c[j],i=0;i<w[k];i++)
if(!b[g[k][i]]&&e[k][g[k][i]])
b[c[++c[0]]=g[k][i]]=k,l=e[k][g[k][i]]<l?e[k][g[k][i]]:l;
if(!b[n])
break;
for(y+=l,j=n;j>1;j=b[j])
e[b[j]][j]-=l;
}
printf("%d",y);
}