Cod sursa(job #2407460)

Utilizator MaraForinaMaria Florina MaraForina Data 16 aprilie 2019 21:25:26
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

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

struct nod
{
    int vf;
    nod *urm;
}*v[50005];

int n,m,viz[50005],nr,w[50005],k;

void citire()
{
    fin>>n>>m;
    int i,x,y;
    nod *p,*q;
    for(i=1;i<=n;++i)
        v[i]=NULL;
    for(i=1;i<=m;++i)
    {
        fin>>x>>y;
        q=new nod;
        q->vf=y;
        q->urm=v[x];
        v[x]=q;
    }
}

void df(int x)
{
    viz[x]=1;
    for(nod *q=v[x];q;q=q->urm)
        if(viz[q->vf]==0)
            df(q->vf);
    w[++k]=x;
}

int main()
{
    citire();
    int i;
    for(i=1;i<=n;++i)
        if(viz[i]==0)
    {
        df(i);
    }
    for(i=k;i>=1;--i)
        fout<<w[i]<<' ';
    return 0;
}