Cod sursa(job #3309498)

Utilizator mihai.25Calin Mihai mihai.25 Data 5 septembrie 2025 16:43:16
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

#include <vector>

#include <algorithm>

using namespace std;

int n, m;

const int MAX = 1e5 + 1;

vector<vector<int>> graf (MAX);

vector<bool> vizitat (MAX);

vector<int> ord;

void dfs (int nod) {

	vizitat[nod] = true;

	for (auto x : graf[nod])
		if (!vizitat[x])
			dfs (x);
	
	ord.push_back(nod);
}

int main () {

	ifstream fin ("sortaret.in");

	ofstream fout ("sortaret.out");

	fin >> n >> m;

	for (int i = 1; i <= m; ++i) {

		int a, b;

		fin >> a >> b;

		graf[a].push_back(b);
	}

	for (int i = 1; i <= n; ++i)
		if (!vizitat[i])
			dfs (i);
	
	reverse (ord.begin(), ord.end());

	for (auto x : ord)
		fout << x << ' ';
	
	return 0;
}