Cod sursa(job #1706295)

Utilizator srefan1Oncioiu Stefan srefan1 Data 22 mai 2016 10:44:56
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<iostream>
#include <vector>
#include <fstream>
#include <queue>
#include <stack>
using namespace std;


ifstream f("sortare.in");
ofstream g("sortaret.out");

vector <int> graph[50005];
vector <bool> viz(50005, false);
stack <int> sol;

void dfs(int node){
	viz[node] = true;

	int son;
	for (int i = 0; i < graph[node].size(); i++){
	son = graph[node][i];
	if (!viz[son])
		dfs(son);
}

sol.push(node);
}

int main(){
	int n, m;
	f >> n >> m;
	cout << n << m;
	int x, y;

for (int i = 1; i <= m; i++){
	f >> x >> y;
	graph[x].push_back(y);
}

for (int i = 1; i <= n; i++){
	if (!viz[i]){
		dfs(i);
	}
}

while (!sol.empty()){
	g << sol.top() << " ";
	sol.pop();
}
}