emm,太水了,没啥好讲的..
代码如下:
#include <bits/stdc++.h>
using namespace std;
const int N=5e4+5;
vector<int>v[N];
int ans[N];
void dfs(int u,int fa)
{
for(int i=0;i<v[u].size();i++)
{
int x=v[u][i];
if(x==fa) continue;
ans[x]=u;
dfs(x,u);
}
}
int main()
{
int n,old,now;
scanf("%d%d%d",&n,&old,&now);
for(int i=1;i<=n;i++)
{
if(i==old) continue;
int x;scanf("%d",&x);
v[x].push_back(i);
v[i].push_back(x);
}
dfs(now,0);
for(int i=1;i<=n;i++)
{
if(i!=now) printf("%d ",ans[i]);
}puts("");
return 0;
}
京公网安备 11010502036488号