40分求助,只过#2和#3
查看原帖
40分求助,只过#2和#3
716488
a_study_xxs楼主2023/3/19 13:44
#include<iostream>
#include<cmath>
using namespace std;
struct Node{
	int num;
	int index ;
};
int n , k ;
Node a[1005] ;
int main(){
    cin >> n ;
    //tist1:输入战斗值
    for(int i = 1 ; i <= pow(2,n) ; i ++){
        cin >> a[i].num;
        a[i].index = i ;
    }
    //tist2:对比战争
    k = n ;
    while(k > 1){	
        for(int i = 1 ; i <= pow(2,k - 1) ; i +=2 ){
            a[n - k].num = max(a[i].num , a[i + 1].num) ;
        }
        k -- ;
    }
    //tist3:输出
    int l ;
    if(a[1].num < a[2].num){
    	l = a[1].index;
	}else{
		l = a[2].index;
	}
    cout << l ;
}
2023/3/19 13:44
加载中...