提交了几次都是 WA 但是没法看数据,不知道哪里错了。
代码如下
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
vector <int> edge[110];
int deg[110];
queue <int> q;
int main(){
int n,m;
while(cin>>n>>m){
if(!n&&!m)
return 0;
for(int i=1;i<=m;i++){
int u,v;
scanf("%d%d",&u,&v);
edge[u].push_back(v);
deg[v]++;
}
for(int i=1;i<=n;i++){
if(deg[i]==0){
q.push(i);
printf("%d ",i);
}
}
while(!q.empty()){
int u=q.front();
q.pop();
for(int i=0;i<edge[u].size();i++){
deg[edge[u][i]]--;
if(deg[edge[u][i]]==0){
q.push(edge[u][i]);
printf("%d ",edge[u][i]);
}
}
}
printf("\n");
}
}