数据很弱,懒得优化。
#include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> #include<vector> #include<queue> #include<math.h> using namespace std; #define M 999999 int n,son[110][100],f[110][100],a[200]; int main() { freopen("gentree.in","r",stdin); freopen("gentree.out","w",stdout); scanf("%d",&n); for(int c,i=1;i<=n;i++) { scanf("%d",&c); while(c) { son[i][++son[i][0]]=c; f[c][++f[c][0]]=i; scanf("%d",&c); } } int cnt=0; while(cnt!=n) { for(int i=1;i<=n;i++) if(!f[i][0]) { a[++cnt]=i; printf("%d ",i); f[i][0]=M; for(int j=1;j<=son[i][0];j++) f[son[i][j]][0]--; } } fclose(stdin);fclose(stdout); return 0; }