Cod sursa(job #1219233)

Utilizator Cristian1997Vintur Cristian Cristian1997 Data 13 august 2014 19:21:21
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
using namespace std;
#include <fstream>
#include <vector>
ifstream fin ("sortaret.in");
ofstream fout("sortaret.out");
const int Nmax = 50000;

vector <int> v[Nmax];
int ord[Nmax], nr = 0;
bool uz[Nmax];

void DFS(int) ;

int main()
{
	int i, n, m, a, b;
	fin >> n >> m;
	for(; m; --m)
	{
	    fin >> a >> b; --a; --b;
	    v[a].push_back(b);
	}
	for(i = 0; i < n; ++i)
        if(!uz[i]) DFS(i);
    for(i = n - 1; i >= 0; --i) fout << 1 + ord[i] << ' ';
    fout << '\n';
	return 0;
}

void DFS(int vf)
{
    uz[vf] = 1;
    for(vector<int>::iterator it = v[vf].begin(); it != v[vf].end(); ++it)
        if(!uz[*it]) DFS(*it);
    ord[nr++] = vf;
}