Pagini recente » Cod sursa (job #1696980) | Cod sursa (job #2470503) | Cod sursa (job #173633) | Cod sursa (job #962028) | Cod sursa (job #386956)
Cod sursa(job #386956)
#include<cstdio>
using namespace std;
int c[1005][1005],n,m,t[1005],fmax;
struct nod {
int info;
nod *next;
};
void citire()
{
int x,y,z;
scanf("%d%d",&n,&m);
int i;
for(i=1;i<=n;i++)
{
scanf("%d%d%d",&x,&y,&z);
c[x][y]=z;
}
}
int bfs()
{
int k,i,coada[1005],st,dr;
for(i=1;i<=n;i++)
t[i]=-1;
st=dr=1;
coada[st]=1;
while(st<=dr)
{
k=coada[st];
for(i=1;i<=n;i++)
{
if(c[k][i]>0 && t[i]==-1)
{
if(i==n)
return 1;
else
{
t[i]=k;
coada[++dr]=i;
}
}
}
st++;
}
return 0;
}
void ek()
{
int i,cmin=110001;
while(bfs())
{
for(i=n;t[i]!=0;i=t[i])
if(cmin>c[t[i]][i])
cmin=c[t[i]][i];
fmax+=cmin;
for(i=n;t[i]!=0;i=t[i]);
{
c[t[i]][i]+=cmin;
c[i][t[i]]-=cmin;
}
}
}
int main()
{
freopen("maxflow.in","r",stdin);
freopen("maxflow.out","w",stdout);
citire();
ek();
printf("%d",fmax);
return 0;
}