有两个点WA,60 分,请大佬点题一下
查看原帖
有两个点WA,60 分,请大佬点题一下
1048576
New_Void楼主2024/10/11 21:38
#include <iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    int c=1;
    for (int i=0;i<n;i++){
        c=c*2;
    }
    int arr[c];
    for (int i=0;i<c;i++){
        cin>>arr[i];
    }
    int a[c][2];
    int b[c/2];
    for (int i=0;i<c;i++){
        a[i][0]=arr[i];
        a[i][1]=i+1;
    }
    if (n==1){
        cout<<min(arr[0],arr[1]);
    }
    else{
    while (true){
        if (c==2){
            if (a[0][0]<a[1][0]){
                cout<<b[0];
            }
            else{
                cout<<b[1];
            }
            break;
        }
        int d=0;
        for (int i=0;i<c;i+=2){
            if (a[i][0]>a[i+1][0]){
                a[d][0]=a[i][0];
                a[d][1]=a[i][1];
                b[d]=a[i][1];
                //cout<<b[d]<<"a"<<endl;
            }
            else{
                a[d][0]=a[i+1][0];
                a[d][1]=a[i+1][1];
                b[d]=a[i+1][1];
                //cout<<b[d]<<endl;
            }
            d+=1;
        }
        c/=2;
    }
    }
    return 0;
}
2024/10/11 21:38
加载中...