Cod sursa(job #2950142)

Utilizator RaduAntoneoAntonio Alexandru Radu RaduAntoneo Data 3 decembrie 2022 01:34:54
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");
#define cin f
#define cout g

vector<vector<int>> adj;
vector<bool> vis;
stack<int> ans;

void dfs(int node) {
	vis[node] = 1;

	for (int x : adj[node])
		if (!vis[x])
			dfs(x);

	ans.push(node);
}

int main() {
	int n, m;
	cin >> n >> m;

	adj.resize(n+1);
	vis.resize(n+1, 0);

	for (int i = 0; i < m; i++) {
		int u, v;
		cin >> u >> v;
		adj[u].push_back(v);
	}

	for (int i = 1; i <= n; i++)
		if (!vis[i])
			dfs(i);

	while (!ans.empty()) {
		cout << ans.top() << " ";
		ans.pop();
	}

	return 0;
}