Cod sursa(job #1850038)

Utilizator denilucaLuca Denisa deniluca Data 18 ianuarie 2017 09:04:27
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int i,n,m,v[100002],x,y,sol[100000],nr;
struct nod
{
    int vecin;
    struct nod *urm;
}*l[100002],*p,*q;

void df(int k)
{
    struct nod *p;

    v[k]=1;
    p=l[k];
    while(p!=NULL)
    {
        int j=p->vecin;
        if(v[j]==0)
            df(j);
        p=p->urm;
    }
    nr++;
    sol[nr]=k;
}

int main()
{
    f>>n>>m;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        p=new nod;
        p->vecin=y;
        p->urm=l[x];
        l[x]=p;
    }
    for(i=1;i<=n;i++)
       if(v[i]==0)
          df(i);
    for(i=nr;i>=1;i--)
        g<<sol[i]<<" ";
    return 0;
}