Cod sursa(job #2854804)

Utilizator Casian_doispeChiriac Casian Casian_doispe Data 21 februarie 2022 19:36:12
Problema Sortare topologica Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#include <deque>
#include <vector>
#include <iomanip>
#include <queue>
#include <algorithm>
#include <cmath>
#include <climits>

#define MOD 104659

using namespace std ;

ifstream cin ("sortaret.in") ;
ofstream cout ("sortaret.out") ;

vector<int> m[50009] ;
vector<int> v ;

int viz[50009], inside[50009] ;

void top_sort(int nod)
{
    if(viz[nod])return ;

    viz[nod] = 1 ;

    for(int f = 0 ; f < m[nod].size() ; f ++)
        top_sort(m[nod][f]) ;

    v.push_back(nod) ;
}

int main()
{
    int q, n ;

    cin >> n >> q ;

    while(q --)
    {
        int a, b ;

        cin >> a >> b ;

        m[a].push_back(b) ;

        inside[b] ++ ;
    }

    for(int f = 1 ; f <= n ; f ++)
        if(!inside[f])
    {
        top_sort(f) ;

        for(int f = v.size() - 1 ; f >= 0 ; f --)
            cout << v[f] << " " ;

        v.clear() ;
    }

    return 0 ;
}
/*
7
10 1 7 2 2 6 10 7
*/