Bryson • 2天前
#include <bits/stdc++.h>
using namespace std;
vector<int>g[10005];
int vis[10005];
queue<int>q;
int main() {
int n;
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
while(x!=0){
g[i].push_back(x);
vis[x]++;
cin>>x;
}
}
for(int i=1;i<=n;i++)
if(vis[i]==0)q.push(i);
while(!q.empty()){
int u=q.front();
cout<<u<<" ";
q.pop();
for(int v:g[u]){
vis[v]--;
if(vis[v]==0)q.push(v);
}
}
return 0;
}
评论:
请先登录,才能进行评论