Cod sursa(job #2207294)

Utilizator cyborgGavrila Alex cyborg Data 25 mai 2018 14:37:18
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>

using namespace std;

void dfs(vector<vector<int> > &v,vector<int> &disc,stack<int> &st,int i) {
	disc[i] = 1;
	for(int j=0;j<v[i].size();j++)
		if (!disc[v[i][j]]) {
			dfs(v, disc, st,v[i][j]);
		}
	st.push(i);


}



int main() {
	int n, a,b;
	ifstream f("sortaret.in");
	ofstream f1("sortaret.out");
	f >> n >> a;
	vector<vector<int> > graf(n);
	vector<int> disc(n,0);
	stack<int> s;
	while (f >> a >> b) {
		graf[a - 1].push_back(b - 1);
	}
	dfs(graf, disc, s, 0);
	while(!s.empty()){
		f1 << s.top()<<" ";
		s.pop();
	}
	return 0;

}