Cod sursa(job #508029)

Utilizator ChallengeMurtaza Alexandru Challenge Data 7 decembrie 2010 13:33:37
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <vector>

using namespace std;

const char InFile[]="sortaret.in";
const char OutFile[]="sortaret.out";
const int MaxN=50111;

ifstream fin(InFile);
ofstream fout(OutFile);

int N,M,x,y;
char viz[MaxN];
vector<int> a[MaxN];

void dfs(int x)
{
	viz[x]=1;
	for(register int i=0;i<(int)a[x].size();++i)
	{
		if(viz[a[x][i]]==0)
		{
			dfs(a[x][i]);
		}
	}
	fout<<x<<" ";
}

int main()
{
	fin>>N>>M;
	for(register int i=0;i<M;++i)
	{
		fin>>x>>y;
		a[y].push_back(x);
	}
	fin.close();
	
	for(register int i=1;i<=N;++i)
	{
		if(viz[i]==0)
		{
			dfs(i);
		}
	}
	fout.close();
	return 0;
}