Pagini recente » Cod sursa (job #500742) | Cod sursa (job #438626) | Cod sursa (job #1271070) | Cod sursa (job #1743661) | Cod sursa (job #2974074)
#include <fstream>
#include <bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream cin ("maxflow.in");
ofstream cout ("maxflow.out");
map<pair<int,int>,int>mapp;
vector<int>G[1008];
int i,j,n,m,suma,x,viz[1008],a,b,c;
int dfs(int nod,int minn)
{
viz[nod]=1;
if(nod==n)
{
return minn;
}
else
{
for(auto i:G[nod])
{
if(viz[i]==0 && mapp[{nod,i}]>0)
{
x=dfs(i,min(minn,mapp[{nod,i}]));
if(x>0)
{
mapp[{nod,i}]-=x;
mapp[{i,nod}]+=x;
return x;
}
}
}
return 0;
}
}
int main()
{
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>a>>b>>c;
G[a].push_back(b);
mapp[{a,b}]=c;
if(mapp[{b,a}]==0)
G[b].push_back(a);
}
x=1;
while(x)
{
for(i=1;i<=n;i++)
{
viz[i]=0;
}
x=dfs(1,1e9);
}
for(auto i:G[n])
{
suma+=mapp[{n,i}];
}
cout<<suma;
return 0;
}