Cod sursa(job #2176588)

Utilizator wilson182Alexandrina Panfil wilson182 Data 17 martie 2018 20:10:10
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<bits/stdc++.h>
using namespace std;
const int N=50020;
vector <int> lda[N], l;
bool v[N];
void dfs(int nod){
	int n=lda[nod].size();
	for(int i=0;i<n;i++)if(!v[lda[nod][i]]){
		v[lda[nod][i]]=1;
		dfs(lda[nod][i]);
	}
	l.push_back(nod);
	cout<<nod<<' ';
}

int main(){
	ifstream f("sortaret.in");
	ofstream g("sortaret.out");
	int n, m, x, y;
	f>>n>>m;
	while(m--){
		f>>x>>y;
		lda[x].push_back(y);
	}
	for(int i=1;i<=n;i++)if(!v[i]){
		v[i]=1;
		dfs(i);
	}
	for(int i=l.size()-1;i>=0;i--)g<<l[i]<<' ';
}