Cod sursa(job #2969481)

Utilizator ViAlexVisan Alexandru ViAlex Data 23 ianuarie 2023 11:30:22
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include<iostream>
#include<deque>
#include<algorithm>
#include<vector>
#include<fstream>
using namespace std;

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

const int mx = 50001;

int n,m;
vector<int> g[mx];
vector<int> result;
vector<bool> visited;


void read(){
	in>>n>>m;
	visited.resize(n+1,false);
	int a,b;
	for(int i=0;i<m;i++){
		in>>a>>b;
		g[b].push_back(a);
	}
}

void dfs(int node){
	visited[node] = true;
	for(int k:g[node]){
		if(!visited[k])
			dfs(k);
	}
	result.push_back(node);
}

void solve(){
	for(int i=1;i<=n;i++){
		if(!visited[i])
			dfs(i);
	}
	for(int k:result)
		out<<k<<" ";
}

int main(){
	read();
	solve();

	return 0;
}