Cod sursa(job #389825)

Utilizator conttPop Mircea contt Data 2 februarie 2010 12:07:16
Problema Sortare topologica Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>

using namespace std;
int grad[5000],n,m,a[5000][5000],viz[5000];
void citire()
{int x,y,i;
	ifstream f("sortaret.in");
	f>>n>>m;
	for(i=1;i<=m;i++)
	{
		f>>x>>y;
	
		a[x][y]=1;
		grad[y]++;
	}

	f.close();
}
void update(int i)
{int j;
	for(j=1;j<=n;j++)
			if(a[i][j]==1) {a[i][j]==0;
		                     grad[j]--;
			}
}

int main()
{int ok,i;
	ofstream g("sortaret.out");
	citire();
	do{
		ok=1;
	for(i=1;i<=n;i++)
		if (grad[i]==0&&viz[i]==0)
		{g<<i<<" ";
		viz[i]=1;
		update(i);
		ok=0;}
		}
	while(ok==0);
		
	g.close();	
	
	return 0;
}