Cod sursa(job #2711589)

Utilizator teofilotopeniTeofil teofilotopeni Data 24 februarie 2021 14:26:08
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <vector>
#include <bitset>
using namespace std;

//  Sortare topologica

vector<vector<int>> nodes(50010);
bitset<50010> parcurs;

void parcurge(int index) {
    if (parcurs[index])
        return;
    for (; nodes[index].size(); nodes[index].pop_back())
        parcurge(nodes[index].back());

    printf("%d ", index);
    parcurs[index] = 1;
}

int main() {
	freopen("sortaret.in", "r", stdin);
	freopen("sortaret.out", "w", stdout);
	int n, m, x, y;
	scanf("%d %d", &n, &m);
	while (m--) {
        scanf("%d %d", &x, &y);
        nodes[y].push_back(x);
	}
	for (x = 1; x <= n; x++)
        parcurge(x);
	return 0;
}