tiangongyuanv @ 2024-08-14 14:26:34
#include<bits/stdc++.h>
using namespace std;
struct edge
{
int head=0,tail[105]={},cnt=1;
};
edge e[200];
int a[200];
bool vis[200];
int main()
{
int n;
cin>>n;
if(n==1)
{
int x;
cin>>x;
cout<<x;
return 0;
}
for(int i=1;i<=n;i++)
{
int x[10086],j=1;
while(cin>>x[j])
{
if(x[j]==0)
{
if(j==1)
a[105]=i;
break;
}
e[x[j]].head++;
e[i].tail[e[i].cnt]=x[j];
e[i].cnt++;
j++;
}
}
int p;
for(int i=1;i<=n;i++)
{
if(e[i].head==0&&!vis[i])
{
vis[i]=1;
cout<<i<<" ";
p=i;
for(int d=1;d<=e[i].cnt;d++)
e[e[i].tail[d]].head--;
i=1;
}
}
if(p!=a[105])
cout<<a[105];
return 0;
}
by Disconnected_ @ 2024-08-16 16:27:31
已AC
第55行的i=1改为i=0 , 不然for循环又会给i++ , i就会从2开始枚举到n , 把1漏了就错了。
还有p和a[105]这两个变量没意义 , 关于它们的要删了
by Disconnected_ @ 2024-08-19 11:08:04
@tiangongyuanv
by tiangongyuanv @ 2024-08-19 14:28:08
@Disconnected_ 谢谢