Cod sursa(job #537259)

Utilizator GeorgeGradinariuGradinariu George GeorgeGradinariu Data 20 februarie 2011 15:10:39
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream in("sortaret.in");


int N, viz[50001],m,L[50001],a=0;

vector <int>v[50001];
vector<int>::iterator it;

void citire()
{
	int i,j;
	in>>N>>m;
	
	for(i=1;i<=N;i++)
		v[i].push_back(i);
	while(in>>i>>j)
		{	//if(S[j]==0)
			v[i].push_back(j);
		
		}
	
}









void dfs(int nod)
{
	int i;
	if (viz[nod]==0)
		viz[nod]=1;
	
	for(i=0;i<v[nod].size();i++)
		if(viz[v[nod][i]]==0)
			dfs(v[nod][i]);
	L[a++]=nod;
}



void rez()
{
	int i;
	ofstream out ("sortaret.out");
	for(i=N-1;i>=0;i--)
		out<<L[i]<<" ";
}
int main ()
{
	int i;
	citire();
	//topsearch();
	for (i=1;i<=N;i++)
		if (!viz[i])
			dfs(i);

rez();
}