Cod sursa(job #2424793)

Utilizator AlexBlagescuBlagescu Alex George AlexBlagescu Data 23 mai 2019 20:56:27
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
using namespace std;

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


void DFS(int nod, vector <vector <int> >& G, vector <int>& V, vector <int>& S) {
	V[nod] = 1;
	for (auto j : G[nod]) {
		if (V[j] == 0)
			DFS(j,G,V,S);
	}
	S.push_back(nod);
}
int main()
{
	int n, m;
	f >> n >> m;

	vector <vector <int> > Graph(n + 1);
	vector <int> Viz(n + 1, 0), Sol;

	for (int i = 1; i <= m; i++) {
		int x, y;
		f >> x >> y;
		Graph[x].push_back(y);
	}
	for (int i = 1; i <= n; i++) {
		if (Viz[i] == 0)
			DFS(i, Graph, Viz, Sol);
	}
	for (int i = Sol.size()-1; i >= 0; i--) {
		g << Sol[i] << ' ';
	
	}
	return 0;
}