Pagini recente » Cod sursa (job #2942963) | Cod sursa (job #2823878) | Cod sursa (job #2631394) | Cod sursa (job #1931244) | Cod sursa (job #281857)
Cod sursa(job #281857)
#include<stdio.h>
#define INF 0x3f3f3f
int n,m;
int A[1024][1024];
int flux[1024][1024];
int t[1024];
int flow;
void cit();
void rez();
int main() {
freopen("maxflow.in", "r", stdin);
//freopen("maxflow.out", "w", stdout);
cit();
rez();
return 0;
}
void cit() {
scanf("%d %d", &n, &m);
for(int i=1; i<=m; i++) {
int a,b,c;
scanf("%d %d %d", &a, &b, &c);
A[a][b]=c;
}
}
int bfs() {
int inc=0,sf=0;
int viz[1024];
int coada[1024];
//curatenie
for(i=1; i<=n; i++) {
viz[i]=0;
t[i]=0;
}
viz[1]=1;
coada[0]=1;
}
void rez() {
int flow;
int i,min;
while(bfs()) {
min=INF;
for(i=n; i; i=t[i]) {
if(A[t[i]][i]-flux[t[i]][i]<min)
min=A[t[i]][i]-flux[t[i]][i];
}
for(i=n; i; i=t[i]) {
flux[t[i]][i]+=min;
flux[i][t[i]]-=min;
}
flow+=min;
}
printf("%d ", flow);
}