社区讨论
2,3测试点错误,求调
P1160队列安排参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mj1e1opa
- 此快照首次捕获于
- 2025/12/11 20:02 2 个月前
- 此快照最后确认于
- 2025/12/13 19:05 2 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m;
struct node{
int right,left;
}a[100005];
void f(int x,int k,int p,int y){
if(y==0){
if(p==0){
a[x].right=k;
a[x].left=a[k].left;
a[a[k].left].right=x;
a[k].left=x;
}
if(p==1){
a[x].left=k;
a[x].right=a[k].right;
a[a[k].right].left=x;
a[k].right=x;
}
}else{
if(a[x].left!=0) a[a[x].left].right=a[x].right;
if(a[x].left!=0) a[a[x].right].left=a[x].left;
a[x].left=0;
a[x].right=0;
}
return ;
}
void print(){
int lefti=1;
while(a[lefti].left!=0){
lefti=a[lefti].left;
}
for(int i=lefti;i!=0;i=a[i].right){
cout<<i<<" ";
}
return ;
}
int main(){
cin>>n;
a[1].left=0;
a[1].right=0;
for(int i=2;i<=n;i++){
int k,p;
cin>>k>>p;
f(i,k,p,0);
}
cin>>m;
for(int i=1;i<=m;i++){
int x;
cin>>x;
f(x,0,0,1);
}
print();
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...