Cod sursa(job #2510222)

Utilizator studentdin19bluredman studentdin19 Data 16 decembrie 2019 01:07:11
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb


#include <map>
#include <set>
#include <vector>
#include <fstream>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");

vector<int> edges[50010];
vector<int> sol;
bool vis[50010];


void dfs(int nod) {
	vis[nod] = true;
	
	for (auto it : edges[nod]) {
		if(vis[it]==false)
			dfs(it);
	}
	sol.emplace_back(nod);
}

int main() {
	int Edges,Vertices;
	cin >> Vertices >> Edges;
	for (int i = 1; i <= Edges; i++) {
		int from, to;
		cin >> from >> to;
		edges[from].push_back(to);
	}
	for (int i = 1; i <= Vertices; i++)
		if(vis[i]==false)
			dfs(i);


	for (int i = Vertices-1; i >= 0; i--)
		cout << sol[i] << ' ';
}