Pagini recente » Cod sursa (job #2682877) | Cod sursa (job #2389834) | Monitorul de evaluare | Cod sursa (job #3168936) | Cod sursa (job #674737)
Cod sursa(job #674737)
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("maxflow.in");
ofstream fo("maxflow.out");
struct muchie {
int i,c;
muchie(int i1 , int c1) {
i=i1;
c=c1;
}
};
struct nod {
int i;
vector<muchie> next;
nod(int j) {
i=j;
};
};
int n , m,sol;
vector<nod> a;
void gofrom(int i,int c) {
if(i==n-1) {
sol+=c;
return;
}
for(int j=0; j<(signed)a[i].next.size(); j++) {
if(!i)c=a[i].next[j].c;
if(min(a[i].next[j].c,c)>0) {
int Min=min(a[i].next[j].c,c),next=a[i].next[j].i;
a[i].next[j].c-=Min;
c-=Min;
gofrom(next,Min);
}
}
}
int main() {
fi>>n>>m;
for(int i=0; i<n; i++)
a.push_back(nod(i));
for(int i=0; i<m; i++) {
int x , y, c;
fi>>x>>y>>c;
a[x-1].next.push_back(muchie(y-1,c));
}
//for(int i=0;i<n;i++){
gofrom(0,0);
//}
fo<<sol;
return 0;
}