社区讨论
大佬,求助,第二个点re,345TLE
P1160队列安排参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo8mon02
- 此快照首次捕获于
- 2023/10/27 21:07 2 年前
- 此快照最后确认于
- 2023/10/27 21:07 2 年前
CPP
#include<iostream>
using namespace std;
typedef struct qnode{
int n;
qnode *next;
}qnode;
typedef struct queue{
qnode *first;
}queue;
void inqueue(queue &q,int i,int m,int l){
if(l==0){
qnode *p=q.first;
for(int j=0;p->next->n!=m;j++){
p=p->next;
}
qnode *x=new qnode;
x->n=i;
x->next=p->next;
p->next=x;
}
else {
qnode *p=q.first;
for(int j=0;p->n!=m;j++){
p=p->next;
}
qnode *x=new qnode;
x->n=i;
x->next=p->next;
p->next=x;
}
}
void outqueue(queue &q,int m){
qnode *p=q.first;
for(int j=0;p->next->n!=m;j++){
p=p->next;
}
qnode *x=p->next;
p->next=x->next;
delete(x);
}
int main(){
queue q;
qnode a;
a.n=0;
q.first=&a;
qnode b;
b.n=1;
a.next=&b;
b.next=NULL;
int n;
cin>> n;
if(n==1){
cout<<1<<endl;
return 0;
}
if(n<=0)return 0;
for(int i = 2; i <= n; i++ ){
int r,s;
cin>>r>>s;
inqueue(q,i,r,s);
}
int m;
int s[100000]={0};
cin>>m;
for(int i=0;i<m;i++){
int r;
cin>>r;
if(s[r]==0){
outqueue(q,r);
}
else continue;
s[r]=1;
}
q.first=q.first->next;
for(int i=0;q.first!=NULL;i++){
cout<<q.first->n<<" ";
q.first=q.first->next;
}
cout<<endl;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...