Cod sursa(job #2426676)

Utilizator TheShark62FMI Cristian-Andrei Ionescu TheShark62 Data 29 mai 2019 00:57:26
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include<iostream>
#include<fstream>
#include<list>

using namespace std;

unsigned int n, m;
list<unsigned int> listaAdj[100001];
bool viz[100001];
list<unsigned int> sortare;

void citire() {
	ifstream in("sortaret.in");

	in >> n >> m;
	for (int i = 0; i < m; i++) {
		unsigned int x, y;
		in >> x >> y;
		listaAdj[x].push_back(y);
	}
	in.close();
}

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

	for (unsigned int i : listaAdj[x])
		if (!viz[i])
			dfs(i);
	sortare.push_front(x);
}

int main() {
	citire();

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

	ofstream out("sortaret.out");
	for (unsigned int i : sortare)
		out << i << ' ';
	out.close();

	return 0;
}