Pagini recente » Cod sursa (job #698090) | Cod sursa (job #2105953) | Cod sursa (job #1548745) | Cod sursa (job #121142) | Cod sursa (job #673921)
Cod sursa(job #673921)
#include <fstream>
using namespace std;
ifstream fin("maxflow.in");
ofstream fout("maxflow.out");
#define inf 0x3f3f3f3f
#define dim 700
int n, m,coada[100000][3],mic,sol;
int v[dim][dim];
void read()
{
int a, b, i;
fin>>n >>m;
for(i=1;i<=m;++i)
{
fin>>a >>b;
fin>>v[a][b];
}
}
void bfs()
{
int inc=1,sf=1;
coada[1][0]=1;
while(inc<=sf)
{
int x=coada[inc][0];
if(x==n)
{
mic=inf;
int nod=inc;
while(nod!=1)
{
mic=min(mic,v[coada[nod][1]][coada[nod][0]]);
nod=coada[nod][2];
}
nod=inc;
while(nod!=1)
{
v[coada[nod][1]][coada[nod][0]]-=mic;
nod=coada[nod][2];
}
sol+=mic;
}
for(int k=1;k<=n;++k)
{
if(v[x][k]!=0)
{
coada[++sf][0]=k;
coada[sf][1]=x;
coada[sf][2]=inc;
}
}
++inc;
}
}
int main()
{
read();
bfs();
fout<<sol;
return 0;
}