#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,m;
int i,j;
int a,b;
int k;
int i_flag;
while(scanf("%d%d",&n,&m)!=EOF)
{ int flag[505]={0};
int e[505]={0}; //表示有后继的个数
int s[505]; //遵储前驱的个数;
int pre[505][505]={0}; //后继
int sigh[505]={0}; //1表示有后继,0表示没有
for(i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
sigh[b]=1;
pre[a][e[a]]=b;
s[b]++;
e[a]++;
}
i_flag=0;
for(j=1;j<=n;j++)
{
for(i=1;i<=n;i++)
{
if(sigh[i]==0&&flag[i]==0)
{ k=0;
if(i_flag==0){
printf("%d",i);
i_flag++;
}
else
printf(" %d",i);
while(pre[i][k]!=0)
{
s[pre[i][k]]--;
if(s[pre[i][k]]==0)
sigh[pre[i][k]]=0;
k++;
}
flag[i]=1;
break;
}
}
}
printf("\n");
}
return 0;
}
HDU-1285
猜你喜欢
转载自blog.csdn.net/xxf_is_girl_gad/article/details/80716785
今日推荐
周排行