Cod sursa(job #386887)

Utilizator mihaimoldovanMihai Moldovan mihaimoldovan Data 26 ianuarie 2010 11:58:53
Problema Flux maxim Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream>
using namespace std;
int n,fmax;
int c[1000][1000],t[1000];
int bfs(int s,int d)
{
	int coada[1000];
	int st,dr;
	st=dr=1;
	coada[st]=1;
	for(int i=1;i<=n;i++)
		t[i]=-1;
	t[st]=0;
	while(st<=dr&&coada[dr]!=n)
		{
			for(int i=1;i<=n;i++)
				if(c[st][i]&&t[i]==-1)
					{
						coada[++dr]=i;
						t[i]=st;
					}
			st++;	
		}
	if(coada[dr]==n)return 1;
	else return 0;
}
int main()
{
	int m,x,y,z,cmin;
	FILE *fin=fopen("naxflow.in","r");
	fscanf(fin,"%d%d",&n,&m);
	for(;m>0;m--)
		{
			fscanf(fin,"%d%d%d",&x,&y,&z);
			c[x][y]=z;
		}
		
	/*	
	while(bfs(1,n))
	{
		cmin=1<<30;
		for(int i=n;t[i]!=0;i=t[i])
			if(c[t[i]][i]<cmin)
				cmin=c[t[i]][i];
		for(int i=n;t[i]!=0;i=t[i])
			{
				c[t[i]][i]-=cmin;
				c[i][t[i]]+=cmin;
			}
		fmax+=cmin;
	}*/
	FILE *fout=fopen("maxflow.out","w");
	fprintf(fout,"%d",fmax);
	return 0;
}