Cod sursa(job #2634364)

Utilizator KlinashkaDiacicov Calin Marian Klinashka Data 10 iulie 2020 18:30:17
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;

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

const int NMAX=1e5;
int N;
vector<int> adj[NMAX+1], topsort;
bool visit[NMAX+1];

void citire() {
	int M;
	fin>>N>>M;
	for(int i=1;i<=M;++i) {
		int a, b;
		fin>>a>>b;
		adj[a].push_back(b);
	}
}

void dfs(int v) {
	visit[v]=true;
	for(auto e:adj[v]) {
		if(!visit[e])
			dfs(e);
	}
	topsort.push_back(v);
}

int main() {
	citire();
	for(int i=1;i<=N;++i) {
		if(!visit[i]) {
			dfs(i);
		}
	}
	reverse(topsort.begin(), topsort.end());
	for(auto e:topsort) {
		fout<<e<<' ';
	}
	fout<<'\n';
	return 0;
}