Cod sursa(job #2502003)

Utilizator CyborgSquirrelJardan Andrei CyborgSquirrel Data 30 noiembrie 2019 12:34:37
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>

using namespace std;

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

int n, m;
vector<int> gr[50041];
bool st[50041], vi[50041];

stack<int> sta;
void doit(int a){
	vi[a] = 1;
	for(auto b : gr[a]){
		if(!vi[b]){
			doit(b);
		}
	}
	sta.push(a);
}

int main(){
	fin >> n >> m;
	for(int i = 0; i < m; ++i){
		int a, b;fin >> a >> b;
		gr[a].push_back(b);
		st[b] = 1;
	}
	
	for(int i = 1; i <= n; i++){
		if(!st[i]){
			doit(i);
		}
	}
	
	while(!sta.empty()){
		fout << sta.top() << " ";
		sta.pop();
	}
	return 0;
}