社区讨论
为什么中间3个没过啊,看不出来哪错了
P1160队列安排参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo9k4vg7
- 此快照首次捕获于
- 2023/10/28 12:43 2 年前
- 此快照最后确认于
- 2023/10/28 12:43 2 年前
CPP
#include<iostream>
using namespace std;
const int N=1e5+10;
int e[N],r[N],l[N],idx;
void init()
{
e[1]=1;
r[0]=1;
l[1]=0;
r[1]=-1;
idx=2;
}
void insert(int a,int x)
{
e[idx]=x;
r[idx]=r[a];
l[idx]=a;
l[r[a]]=idx;
r[a]=idx++;
}
void remove(int a)
{
r[l[a]]=r[a];
l[r[a]]=l[a];
}
int main()
{
init();
int n;
cin>>n;
for(int i=2;i<=n;i++)
{
int k,p;
cin>>k>>p;
if(p)
insert(k,i);
else
insert(l[k],i);
}
int m;
cin>>m;
while(m--)
{
int x;
cin>>x;
remove(x);
}
int i=0;
while(r[i]!=-1)
{
i=r[i];
cout<<e[i];
if(r[i]!=-1)
cout<<' ';
}
cout<<endl;
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...