Cod sursa(job #3201967)

Utilizator dobreraduDobre Radu Fabian dobreradu Data 10 februarie 2024 11:11:14
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
vector <int> sortaret;
vector <vector <int> > g, inv;
int grade[50005];
void topo( int nod ){
    sortaret.push_back(nod);
    grade[nod] = -1;
    for( auto vec : g[nod] ){
        grade[vec]--;
        if( !grade[vec] )
            topo( vec );
    }
}
int main()
{
    int n, m;
    in >> n >> m;
    g.resize(n+1);
    inv.resize(n+1);
    for( int i = 0; i < m; i++ ){
        int a, b;
        in >> a >> b;
        g[a].push_back(b);
        inv[b].push_back(a);
        grade[b]++;
    }
    for( int i = 1; i <= n; i++ ){
        if( !grade[i] ){
            topo(i);
            break;
        }
    }
    for( auto x : sortaret )
        out << x << " ";
    return 0;
}