社区讨论

求问什么叫Too short on line 0

P1160队列安排参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi4hl4uv
此快照首次捕获于
2025/11/18 19:24
4 个月前
此快照最后确认于
2025/11/18 19:24
4 个月前
查看原帖
CPP
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
struct st{
    int l,r,id;
} team[101000]={0};
int i,j,m,n,x,c,p;
void add(int a,int b){
        if(b==0){
            team[i].id=i;
            team[team[x].l].r=i;
            team[i].l=team[x].l;
            team[i].r=x; team[x].l=i;
            if(team[i].l==0) p=i;
        }else{
            team[i].id=i;
            team[team[x].r].l=i;
            team[i].r=team[x].r;
            team[i].l=x; team[x].r=i;
}}
void del(int a){
    int f,t;
    f=team[a].l; t=team[a].r;
    team[f].r=team[a].r;
    team[t].l=team[a].l;
    team[a].l=-1; team[a].r=-1;
}
int main(){
    scanf("%d",&n);
    team[1].id=1; team[1].l=0; team[1].r=0;
    for(i=2;i<=n;++i){
        scanf("%d%d",&x,&c);
        add(x,c);
        //cout<<team[p].l<<" "<<team[p].id<<" "<<team[p].r<<endl;
        } int sum=0;
    scanf("%d",&m);
    for(i=1;i<=m;++i){
      scanf("%d",&x);
      del(x); sum++;
      }
    for(i=1;i<=n;++i){
        if(team[i].l==0){
            p=i;
            break;
        }
    }
    n=n-sum;
    while(n>=0){
        if(team[p].id!=0)
        cout<<team[p].id<<" ";
        p=team[p].r;
        n--;
    }
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...