Cod sursa(job #1849443)

Utilizator sotoc1999Sotoc George sotoc1999 Data 17 ianuarie 2017 16:02:30
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,x,y;
struct nod{
    int vecin;
    struct nod *urm;
}*l[50003],*actual;
bool viz[50003];
int sol[50003];
int nr;
void df(int k)
{
    struct nod *actual;
    viz[k]=true;
    actual=l[k];
    while(actual!=NULL)
    {
        if(viz[actual->vecin]==false)
        {
            df(actual->vecin);
        }
        actual=actual->urm;
    }
    ++nr;
    sol[nr]=k;
}
int main()
{
    f>>n>>m;
    int i;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        actual=new nod;
        actual->vecin=y;
        actual->urm=l[x];
        l[x]=actual;
    }
    for(i=1;i<=n;i++)
    {
        if(viz[i]==0)
            df(i);
    }
    for(i=nr;i>=1;i--)
        g<<sol[i]<<" ";
    return 0;
}