Cod sursa(job #284159)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 21 martie 2009 08:50:58
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
using namespace std;
struct nod { int inf; nod *adr;};
nod *v[50010],*sol,*p;
int a,b,n,m,i,viz[50010];

void constr(int i)
 {  nod *c;
    c=new nod;
    c->inf=i;
    c->adr=sol;
    sol=c;
 }


void creare(int i, int j)
 { nod *c;
   c=new nod;
   c->inf=j;
   c->adr=v[i];
   v[i]=c;
 }

void add(int i)

 { nod *c;

   viz[i]=1;
   for(c=v[i];c;c=c->adr)
   if(!viz[c->inf])
      add(c->inf);
   constr(i);
 }

int main()
{
ifstream f("sortaret.in");
ofstream g("sortaret.out");

f>>n>>m;

for(i=1;i<=m;i++)
  { f>>a>>b;
    creare(a,b);
  }
for(i=1;i<=n;i++)

 if(!viz[i])  add(i);

for(p=sol;p;p=p->adr) g<<p->inf<<" ";

f.close();
g.close();
return 0;
}