Cod sursa(job #3301408)

Utilizator niculaandreiNicula Andrei Bogdan niculaandrei Data 26 iunie 2025 00:36:47
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
#define N_MAX (int)5e4 + 5

using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

int N, M, u, v;
vector<int> G[N_MAX];
int inDeg[N_MAX], Q[N_MAX], idx, currNode;

int main() {
    fin >> N >> M;
    for (int i = 0; i < M; i++) {
        fin >> u >> v;
        G[u].push_back(v);
        inDeg[v]++;
    }

    idx = 1;
    for (int i = 1; i <= N; i++) {
        if (inDeg[i] == 0) {
            Q[idx++] = i;
        }
    }

    for (int i = 1; i <= N; i++) {
        currNode = Q[i];
        for (int node: G[currNode]) {
            inDeg[node]--;
            if (inDeg[node] == 0) {
                Q[idx++] = node;
            }
        }
        fout << currNode << " ";
    }

    return 0;
}