Cod sursa(job #2528132)

Utilizator CarlaDianaCarla Diana CarlaDiana Data 21 ianuarie 2020 15:56:58
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>
#define GRI 1
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
typedef struct nod {
        int vf;
        nod * next;
} *PNOD, NOD;

PNOD L[50005];//Listele de vecini pentru fiecare nod
PNOD adresa; // lista simplu inlantuita
int viz[50005];
int n,m,x,y;

void Add( int i, int j)
{
     PNOD p = new NOD;
     p->vf = j;
     p->next = L[i];
     L[i] = p;
}
void Push( int nod )
{
     PNOD p = new NOD;
     p->vf = nod;
     p->next = adresa;
     adresa = p;
}
void DF( int nod )
{
     viz[nod] = GRI;
     viz[nid]=1;
     for ( PNOD p = L[nod]; p; p = p->next )
         if (viz[p->vf]==0)
              DF(p->vf);
     viz[nod]=1;
     Push(nod);
}

int main()
{
    fin>>n>>m;
     for ( ; m > 0; m-- )
     {
         fin>>x>>y;
         Add(x,y);
     }
     for (int i = 1; i <= n; ++i )
         if (viz[i]==0)
            DF(i);

    for ( PNOD p = adresa; p; p = p->next )
         fout<<p->vf<<" ";
    return 0;
}