提交时间:2022-07-29 20:55:11

运行 ID: 55135

#include<bits/stdc++.h> int mp[510][510]; int n,ind[510]; void com() { int i,j,top,k=0; for(i=0;i<n;i++) { for(j=1;j<=n;j++) { if(ind[j]==0) { top=j; break; } } if(i==n-1)printf("%d\n",top); else printf("%d ",top); ind[top]--; for(j=1;j<=n;j++)if(mp[top][j])ind[j]--; } } int main() { int i,a,b,m; while(scanf("%d%d",&n,&m)!=EOF) { memset(ind,0,sizeof(ind)); memset(mp,0,sizeof(mp)); for(i=0;i<m;i++) { scanf("%d%d",&a,&b); if(mp[a][b]==0) { mp[a][b]=1; ind[b]++; } } com(); } return 0; }