Cod sursa(job #653485)

Utilizator galbenugalbenu dorin galbenu Data 28 decembrie 2011 02:23:29
Problema Sortare topologica Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#define nmax 50000
#define mmax 100000
#include<fstream>
using namespace std;
ifstream f("sortaret.in",fstream::in);
ofstream g("sortaret.out",fstream::out);
struct nod
{
    int inf;
    nod *urm;
};
nod *l[nmax];
short int n,viz[nmax];
int sol[nmax],m,i;
void add(short int x,short int y)
{
    nod *nou;
    nou=new nod;
    nou->inf=x;
    nou->urm=l[y];
    l[y]=nou;
}
void DF(short int x)
{
    viz[x]=1;
    nod *p;
    for(p=l[x];p;p=p->urm)
     if(!viz[p->inf])
     DF(p->inf);
sol[++sol[0]]=x;
}
int main()
{
    f>>n>>m;
    short int x,y;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        add(x,y);
    }
   for(i=1;i<=n;i++)
    if(viz[i]==0)
    DF(i);
for(i=1;i<=n;i++)
g<<sol[i]<<" ";
f.close();
g.close();
return 0;
}