Cod sursa(job #1947843)

Utilizator Constantin.Dragancea Constantin Constantin. Data 31 martie 2017 14:12:21
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <bits/stdc++.h>
using namespace std;
#define pb push_back

int n,m;
vector <int> V[50010];
vector <pair<int,int> > Sol;
bool u[50010];

void dfs(int q, int t){
	u[q]=true;
	Sol.pb(make_pair(t,q));
	for (int i=0; i<V[q].size(); i++){
		if (!u[V[q][i]]) dfs(V[q][i],t+1);
	}
}

int main(){
	ifstream cin ("sortaret.in");
	ofstream cout ("sortaret.out");
	cin>>n>>m;
	for (int i=1; i<=m; i++){
		int x,y;
		cin>>x>>y;
		V[x].pb(y);
	}
	for (int i=1; i<=n; i++){
		if (!u[i]) dfs(i,1);
	}
	for (int i=0; i<Sol.size(); i++){
		cout<<Sol[i].second<<" ";
	}
	return 0;
}