Cod sursa(job #1475327)

Utilizator nicu701Nicu Badescu nicu701 Data 23 august 2015 20:29:08
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <deque>


using namespace std;

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

vector<vector<int> > graph(50000);
deque<int> result;
bool visited[50000];

void DFS(int i) {
	visited[i] = 1;
	for (vector<int>::iterator it = graph[i].begin();
			it != graph[i].end();
			++it
	) {
		DFS(*it);
	}
	
	result.push_front(i);
}
		

int main() {
	int m,n;
	f_in >> n >> m;
	int base, target;
	for (int i = 0; i < m; i++) {
		f_in >> base >> target;
		graph[base].push_back(target);
	}

	for (int i = 0; i < n; i++) {
		if (!visited[i]) {
			DFS(i);
		}
	}

	for (deque<int>::iterator it = deque.begin();
			it != deque.end();
			++it
	) {
		f_out << (*it) << " ";
	}

	f_in.close();
	f_out.close();

	return 0;
}