Cod sursa(job #2966815)

Utilizator sLinXDinca Robert sLinX Data 18 ianuarie 2023 15:21:01
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std ;

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

int n,m, x,y ;
typedef struct nod{
    int vf ;
    nod *next ;
}*pnod,NOD;
pnod L[50005];
pnod lista;
int verif[50005];


void sortTop(int n)
{


    verif[n] = 1;
    for(pnod p = L[n] ;     p != NULL; p= p->next)     {if(verif[p->vf] == 0)sortTop(p->vf);}
    verif[n] = 2 ;
    pnod m = new NOD;
    m->vf = n;
    m->next = lista;
    lista = m ;
}

int main()
{
    fin >> n >> m ;
    for(int i = 0 ; i< m ; i++)
        {
            pnod p = new NOD;
            fin >> x >> y ;
            p->vf = y ;
            p->next = L[x];
            L[x] = p ;
        }
    for(int i = 1 ; i<=n;i++)
        {
            if(verif[i] == 0)
                sortTop(i);
        }
    for(pnod p = lista; p ; p = p->next)
        fout << p->vf << ' ';
    return 0;
}