Pagini recente » Cod sursa (job #1730059) | Cod sursa (job #2755808) | Cod sursa (job #2984993) | Cod sursa (job #3242534) | Cod sursa (job #882894)
Cod sursa(job #882894)
# include <string.h>
# include <algorithm>
# include <fstream>
using namespace std;
ifstream fin("maxflow.in");
ofstream g("maxflow.out");
int n,m,c[1005][1005],i,x,y,flux,f[1005][1005],r,t[1005];
int BFS()
{
int p,i,u,q[1005],nod;
memset(t,0,sizeof(t));
p=u=1;
t[1]=-1;
q[1]=1;
while (p<=u)
{
nod=q[p];
for (i=1; i<=n; i++)
if (t[i]==0 && c[nod][i]>f[nod][i])
{
t[i]=nod;
q[++u]=i;
if (i==n) return 1;
}
p++;
}
return 0;
}
void flux_max()
{
int i; int r;
while (BFS())
{
r=100000;
i=n;
while (i!=1)
{
r=min(r,c[t[i]][i]-f[t[i]][i]);
i=t[i];
}
i=n;
while (i!=1)
{
f[t[i]][i]+=r;
f[i][t[i]]-=r;
i=t[i];
}
flux+=r;
}
}
int main()
{
fin>>n>>m;
for (i=1; i<=m; i++)
{
fin>>x>>y>>r;
c[x][y]=r;
}
flux=0;
flux_max();
g<<flux;
return 0;
}