Cod sursa(job #1014750)

Utilizator vladrochianVlad Rochian vladrochian Data 23 octombrie 2013 10:56:17
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,i,x,y,k,lista[50000];
vector<int>g[50001];
bitset<50001>marcat;
void dfs(int nod)
{
	marcat[nod]=1;
	for(int i=0;i<g[nod].size();i++)
		if(!marcat[g[nod][i]])
			dfs(g[nod][i]);
	lista[k++]=nod;
}
int main()
{
	fin>>n>>m;
	for(i=0;i<m;i++)
	{
		fin>>x>>y;
		g[x].push_back(y);
	}
	for(i=1;i<=n;i++)
		if(!marcat[i])
			dfs(i);
	for(i=n-1;i>=0;i--)
		fout<<lista[i]<<" ";
	fout<<"\n";
	return 0;
}