2 条题解

  • 0
    @ 2025-3-27 9:48:19
    //数组模拟链表秒了
    #include<bits/stdc++.h>
    using namespace std;
    
    int n,m;
    struct soldier{
        int index;
        int pre;
        int nxt;
    };
    
    int main(){
        scanf("%d%d",&n,&m);
        vector<soldier> s(n+10);
        for(int i = 1; i <= n; i++){
            s[i].index = i;
            s[i].pre = i-1;
            s[i].nxt = i+1;
        }
        int ind;
        while(m--){
            //不断维护每个死去士兵的左节点和右节点
            scanf("%d",&ind);
            int nx = s[ind].nxt;
            int pr = s[ind].pre;
            s[pr].nxt = s[ind].nxt;
            s[nx].pre = s[ind].pre;
            if(s[ind].nxt > n && s[ind].pre < 1) printf("* *\n");
            else if(s[ind].nxt > n) printf("%d *\n",s[ind].pre);
            else if(s[ind].pre < 1) printf("* %d\n",s[ind].nxt);
            else printf("%d %d\n",s[ind].pre, s[ind].nxt);
        }
    }
    

    信息

    ID
    106
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    221
    已通过
    41
    上传者