Cod sursa(job #1366607)

Utilizator yololy97Olaru Bogdan-Ioan yololy97 Data 1 martie 2015 12:04:03
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
#include <vector>
using namespace std;
vector<int> s;
vector<int> v[50001];
int n, m;
bool used[50001];
void dfs(int nod){
	if(used[nod])
		return;
	used[nod] = true;
	for(int i = 0; i < v[nod].size(); ++i)
		if(!used[v[nod][i]])
			dfs(v[nod][i]);
	s.push_back(nod);
}
int main(){
	freopen("sortaret.in", "r", stdin);
	freopen("sortaret.out", "w", stdout);
	scanf("%d %d", &n, &m);
	for(int i = 1; i <= m; ++i){
		int x, y;
		scanf("%d %d", &x, &y);
		v[x].push_back(y);
	}
	for(int i = 1; i <= n; ++i)
		if(!used[i])
			dfs(i);
	for(int i = s.size() - 1; i >= 0; --i)
		printf("%d ", s[i]);
	printf("\n");
}