Pagini recente » Cod sursa (job #988578) | Cod sursa (job #2696353) | Cod sursa (job #2909428) | Cod sursa (job #2439041) | Cod sursa (job #923957)
Cod sursa(job #923957)
//SORTARE TOPOLOGICA
#include <fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
struct nod
{
int info;
nod *next;
};
nod *p,*l[50001],*t;
int x,y,i,j,n,nods,viz[50001],gr[50001],w,rez[50001],niv,z,ga,ok,m,cd[50001],k,pr;
int main()
{
fin>>n>>m;
for(i=1;i<=m;++i)
{
fin>>x>>y;
p=new nod;
p->info=y;
p->next=l[x];
l[x]=p;
viz[y]=1;
gr[y]++;
}
for(i=1;i<=n;++i)
{
if(viz[i]==0)
cd[++k]=i;
viz[i]=0;
}
i=1;
pr=1;
while(pr<=k)
{
x=cd[pr++];
viz[x]=1;
rez[++w]=x;
p=new nod;
p=l[x];
while(p)
{
if(viz[p->info]==0&&gr[p->info]-1==0)
{
cd[++k]=p->info;
viz[p->info]=1;
gr[p->info]--;
}
gr[p->info]--;
p=p->next;
}
}
for(i=1;i<=n;++i)
fout<<rez[i]<<" ";
return 0;
}