Cod sursa(job #2514289)

Utilizator cyg_TheoPruteanu Theodor cyg_Theo Data 25 decembrie 2019 09:39:53
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>
#include <vector>
#include <queue>

using namespace std;

const int NMAX = 50002;

vector <int> G[NMAX];

int viz[NMAX];

queue <int> q;

void dfs(int u){
	viz[u]=1;
	q.push(u);
	for(int i=0;i<G[u].size();++i){
		int v=G[u][i];
		if(viz[v]==0)
			dfs(v);
	}
}

int main(){
	freopen("sortaret.in","r",stdin);
	freopen("sortaret.out","w",stdout);

	int n,m,u,v;

	scanf("%d%d",&n,&m);

	for(int i=1;i<=m;++i){
		scanf("%d%d",&u,&v);
		G[u].push_back(v);
	}

	for(int i=1;i<=n;++i)
		if(!viz[i])
			dfs(i);

	while(!q.empty())
		printf("%d ",q.front()),q.pop();
	

	return 0;
}