Cod sursa(job #2498286)

Utilizator DayanamdrMardari Dayana Raluca Dayanamdr Data 23 noiembrie 2019 18:32:32
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>

using namespace std;
int N, listA[5001][5001], nrVecini[50001];
int visited[50001], k = 0, stiva[50001];
void visit(int i) {
    visited[i] = 0;
    for(int j =1 ; j <= nrVecini[i]; j++) {
        if(visited[listA[i][j]] == -1)
            visit(listA[i][j]);
        }
    stiva[++k] = i;
}
int main()
{
    int M;
    cin >> N >> M;
    while (M--) {
        int x, y;
        cin >> x >> y;
        nrVecini[x]++;
        listA[x][nrVecini[x]] = y;
    }
    for(int i = 1; i <= N; i++)
        visited[i] = -1;
    for(int i = 1; i <= N; i++) {
        if(visited[i] == -1)
            visit(i);
    }
    for(int i = N; i >= 1; i--)
        cout << stiva[i] << " ";
    return 0;
}