Cod sursa(job #2568431)

Utilizator Diamond2706Lihet Catalin Diamond2706 Data 3 martie 2020 22:50:02
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#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,x,y,viz[50010],k,st[50010];
void adauga(int i,int j)
{
    nod *p=new nod;
    p->info=j;
    p->urm=L[i];
    L[i]=p;
}
void dfs(int i)
{
    viz[i]=1;
    nod *p=new nod;
    p=L[i];
    while(p)
    {
        if(viz[p->info]==0)dfs(p->info);
        p=p->urm;
    }
    st[++k]=i;
}
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        fin>>x>>y;
        adauga(x,y);
    }
    for(int i=1;i<=n;i++)if(viz[i]==0)dfs(i);
    for(int i=k;i>=1;i--)fout<<st[i]<<" ";
    return 0;
}