Cod sursa(job #538647)

Utilizator GaborGabrielFMI - GabrielG GaborGabriel Data 21 februarie 2011 19:47:48
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream.h>
ifstream f("sortaret.in");
ofstream g("sortaret.out");

struct nod{int nr;nod*urm;} *v[50001],*p, *q,*prim,*ultim;

int i,x,y,n,m,u[50001];

int main()
{ f>>n>>m;
  for(i=1;i<=m;i++)
  { f>>x>>y; 
    p=new nod; p->nr=y;p->urm=v[x];v[x]=p;
	u[y]++;
  }	  
  for(i=1;i<=n;i++)
	  if(u[i]==0) { p=new nod; 
                    p->nr=i;
	                p->urm=NULL;
					if(prim==NULL) prim=ultim=p;
					  else ultim->urm=p, ultim=p;
	              }
	while(prim) { g<<prim->nr<<' ';
				  p=v[prim->nr];
	              while(p){u[p->nr]--; 
				           if(u[p->nr]==0) {q=new nod; q->nr=p->nr;q->urm=NULL; ultim->urm=q;ultim=q;} 
					       p=p->urm;}
				  prim=prim->urm;
				}
  
  
  
	
f.close();g.close();	
}