Cod sursa(job #936436)

Utilizator forgetHow Si Yu forget Data 7 aprilie 2013 06:36:04
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#include <vector>
using namespace std;

vector<vector<int> > radjlist;
vector<bool> mark;

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

void dfs(int i) {
	mark[i] = true;
	for (vector<int>::iterator it = radjlist[i].begin(); it != radjlist[i].end(); ++it)
		if (!mark[*it]) dfs(*it);
	fout << i << ' ';
}

int main()
{
	int n, m;
	fin >> n >> m;
	radjlist.resize(n+1);
	mark.resize(n+1);
	int u, v;
	for (; m > 0; --m) {
		fin >> u >> v;
		radjlist[v].push_back(u);
	}
	for (int i = 1; i <= n; ++i)
		if (!mark[i]) dfs(i);
	return 0;
}