Cod sursa(job #775298)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 7 august 2012 18:52:21
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <list>

using namespace std;

ifstream in ("sortaret.in");
ofstream out ("sortaret.out");

const int MAXN = 50010;

vector <int> graf[MAXN];
vector <int> sol;
bool viz[MAXN];

inline void DFS (int nod)
{
	vector <int> :: iterator it;
	viz[nod] = 1;
	
	for (it = graf[nod].begin (); it != graf[nod].end (); ++it)
		if (!viz[*it])
			DFS (*it);
		
	sol.push_back (nod);
}

int main ()
{
	vector <int> :: iterator it;
	int N, M, i, x, y;
	
	in >> N >> M;
	
	while (M--){
		in >> x >> y;
		
		graf[x].push_back (y);
	}
	
	for (i = 1; i <= N; ++i)
		if (!viz[i])
			DFS(i);
		
	for (it = sol.end () - 1; it >= sol.begin (); --it)
		out << *it << " ";
	
	return 0;
}