Cod sursa(job #1280661)

Utilizator ducu34Albastroiu Radu Gabriel ducu34 Data 2 decembrie 2014 12:22:18
Problema Sortare topologica Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,i,x,y,a[10001][10001],ajung[10001],sortat[10001],k;
void dfs(int x)
{
	int i;
	for(i=1;i<=n;i++)
		if(a[x][i])
		{
			a[x][i]=0;
			ajung[i]--;
			if(!ajung[i])
			{
				sortat[++k]=i;
				dfs(i);
			}
		}
}
int main()
{
	fin>>n>>m;
	for(i=1;i<=m;i++)
	{
		fin>>x>>y;
		if(!a[x][y])
		{
			a[x][y]=1;
			ajung[y]++;
		}
	}
	k=0;
	for(i=1;i<=n;i++)
	{
		if(!ajung[i])
		sortat[++k]=i;
	}
	for(i=1;i<=k;i++)
	{
		dfs(sortat[i]);
	}
	for(i=1;i<=n;i++)
	fout<<sortat[i]<<" ";
	return 0;
}