Pagini recente » Cod sursa (job #2176090) | Cod sursa (job #3125063) | Cod sursa (job #1756716) | Cod sursa (job #2735770) | Cod sursa (job #538259)
Cod sursa(job #538259)
#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();
}