Pagini recente » Cod sursa (job #1951202) | Cod sursa (job #2815127) | Cod sursa (job #126367) | Cod sursa (job #2426097) | Cod sursa (job #979107)
Cod sursa(job #979107)
#include <iostream>
#include <fstream>
using namespace std;
struct la
{
int ind;
la *urm;
} *p;
struct vla
{
la *urm;
int stare;
} v[50003];
int r[50003],nr,n,m,i,x,y;
int go(int x)
{
la *p;
p=v[x].urm;
v[x].stare=2;
while (p->urm!=NULL)
{
if (v[p->ind].stare==0)
go(p->ind);
p=p->urm;
}
v[x].stare=1;
nr++;
r[nr]=x;
return 0;
}
int main(void)
{
FILE * f;
f=fopen("sortaret.in","r");
ofstream g("sortaret.out");
fscanf(f,"%d%d",&n,&m);
for (i=1;i<=n;i++)
{
p=new(la);
p->ind=0;
p->urm=NULL;
v[i].urm=p;
}
for (i=1;i<=m;i++)
{
fscanf(f,"%d%d",&x,&y);
p=new(la);
p->ind=y;
p->urm=v[x].urm;
v[x].urm=p;
}
for (i=1;i<=n;i++)
if (v[i].stare==0)
go(i);
for (i=nr;i>=1;i--)
g<<r[i]<<' ';
g.close();
return 0;
}