求大佬指出哪里错了,样例,和自己出的都对了,就是60分
查看原帖
求大佬指出哪里错了,样例,和自己出的都对了,就是60分
1048576
New_Void楼主2024/10/11 21:50
#include <iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    long long 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];
    }
    long long a[c][2];
    long long 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:50
加载中...