Pagini recente » Cod sursa (job #3183916) | Borderou de evaluare (job #3215575) | Cod sursa (job #464260) | Borderou de evaluare (job #2452457) | Cod sursa (job #543110)
Cod sursa(job #543110)
#include<fstream.h>
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct nod
{int nr;
nod *urm;};
nod *v[50001],*p,*q,*prim,*ultim;
int x,y,n,m,u[50001];
int main()
{ int i;
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='\0';
if(!prim) 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='\0';
ultim->urm=q;
ultim=q;
}
p=p->urm;
}
prim=prim->urm;
}
g<<'\n';
f.close(); g.close();
return 0;
}