AC#1 TLE#2-#7 WA#7-#10 求调
查看原帖
AC#1 TLE#2-#7 WA#7-#10 求调
914275
__rnfmabj__楼主2023/8/13 18:14
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5;
int n;
struct mapp{
    int data,i,nex,fr;
    bool vis=0;
}a[N];
bool empty(){
    for (int i=1;i<=n;i++){
        if (a[i].data!=-1){
            return 0;
        }
    }
    return 1;
}
signed main(){
    cin>>n;
    a[0].nex=1;
    for (int i=1;i<=n;i++){
        cin>>a[i].data;
        a[i].i=i;a[i].fr=i-1;a[i].nex=i+1;
    }//建链表
    while(!empty()){//没被删空时就继续遍历
        for (int j=a[0].nex;j<=n;j){//便利
            if (a[j].data!=a[a[j].fr].data){//当前面的值与本身不同时
                a[j].vis=1;//标记
                cout<<a[j].i<<' ';
            }
            j=a[j].nex;
        }
        for (int j=1;j<=n;j++){//删除标记过的数
            if (a[j].vis){
                a[a[j].fr].nex=a[j].nex;
                a[a[j].nex].fr=a[j].fr;
                a[j].fr=0;a[j].nex=0;
                a[j].vis=0;
                a[j].data=-1;
            }
        }
        cout<<endl;
    }
    system("pause");
    return 0;
}

大佬求调

2023/8/13 18:14
加载中...