Cod sursa(job #2527748)

Utilizator CarlaDianaCarla Diana CarlaDiana Data 20 ianuarie 2020 20:45:55
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
struct nod {int info;nod *urm;};
nod *L[50010];
int n,m,a,b,st[50010],niv;
bool viz[50010];
void add(int x,int y)
{
    nod *q;
    q=new nod;
    q->info=y;
    q->urm=L[x];
    L[x]=q;
}
void DFS(int k)
{
    nod *q;
    viz[k]=1;
    q=L[k];
    while(q!=NULL)
    {
        if(viz[q->info]==0)
        {
            DFS(q->info);
            st[++niv]=q->info;
        }
        q=q->urm;
    }
}
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        fin>>a>>b;
        add(a,b);
    }
    for(int i=1;i<=n;i++)
    {
        if(viz[i]==0)
        {
            DFS(i);
            st[++niv]=i;
        }
    }
    for(int i=n;i>0;i--)
        fout<<st[i]<<" ";
    return 0;
}