Pagini recente » Cod sursa (job #636043) | Istoria paginii utilizator/costi0298 | Cod sursa (job #1489519) | Cod sursa (job #2010522) | Cod sursa (job #284238)
Cod sursa(job #284238)
#include<fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
struct nod { int v;
nod *next;
} *v[50001],*list;
long n,m;
int c[50001];
void citire()
{ long i,x,y;
nod *p;
fin>>n>>m;
for(i=1;i<=m;i++)
{ fin>>x>>y;
p=new nod;
p->v=y;
p->next=v[x];
v[x]=p;
}
}
void df(int nd)
{ nod *p,*q;
c[nd]=1;
p=v[nd];
while(p!=NULL)
{ if(c[p->v]==0)
df(p->v);
p=p->next;
}
c[nd]=2;
q=new nod;
q->v=nd;
q->next=list;
list=q;
}
void sorttop()
{ int i;
for(i=1;i<=n;i++)
if(c[i]==0)
df(i);
}
void afis()
{ nod *p;
p=list;
while(p!=NULL)
{ fout<<p->v<<" ";
p=p->next;
}
}
int main()
{ citire();
sorttop();
afis();
fin.close();
fout.close();
return 0;
}