Pagini recente » Cod sursa (job #354147) | Cod sursa (job #2668857) | Cod sursa (job #749681) | Cod sursa (job #865602) | Cod sursa (job #2360629)
#include <fstream>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
typedef struct nod
{
int vf;
nod *next;
} *PNOD, NOD;
PNOD L[50005];
PNOD adresa;
int v[50005],n,m;
void add(int x, int y)
{
PNOD p=new nod;
p->vf=y;
p->next=L[x];
L[x]=p;
}
void citire()
{
int i,j,x,y;
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>x>>y;
add(x,y);
}
}
void push(int x)
{
PNOD p=new nod;
p->vf=x;
p->next=adresa;
adresa=p;
}
void df(int i)
{
int j;
v[i]=1;
for(PNOD it=L[i];it!=NULL;it=it->next)
{
if(v[it->vf]==0)
df(it->vf);
}
v[i]=2;
push(i);
}
void sortare_top()
{
int i;
for(i=1;i<=m;i++)
{
if(v[i]==0)
df(i);
}
}
void afis()
{
PNOD it=new nod;
it=adresa;
while(it)
{
cout<<it->vf<<" ";
it=it->next;
}
}
int main()
{
citire();
sortare_top();
afis();
return 0;
}