Pagini recente » Cod sursa (job #2232621) | Cod sursa (job #208454) | Cod sursa (job #2791026) | Cod sursa (job #2467505) | Cod sursa (job #502399)
Cod sursa(job #502399)
#include<cstdio>
#define nmax 50002
using namespace std;
struct NodAR
{
int inf;
struct NodAR* next;
};
typedef NodAR* NAR;
NAR a[nmax];
int n,m,di[nmax];
void read();
void adaug(int,int);
void solve();
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
read();
solve();
return 0;
}
void read()
{
int i,x,y;
scanf("%ld%ld",&n,&m);
for (i=1;i<=m;++i)
{
scanf("%ld%ld",&x,&y);
adaug(x,y);
di[y]++;
}
}
void adaug(int x,int y)
{
NAR p=new NodAR;
p->inf=y;
p->next=a[x];
a[x]=p;
}
void solve()
{
int i,pi=0,u,Q[nmax],z;
NAR p;
for (i=1;i<=n;++i)
if (!di[i])
Q[++pi]=i;
u=pi;
pi=1;
while (pi<=u)
{
z=Q[pi++];
printf("%ld ",z);
for (p=a[z];p;p=p->next)
{
di[p->inf]--;
if (!di[p->inf]) Q[++u]=p->inf;
}
}
}