菜鸡求助,只有40分。
查看原帖
菜鸡求助,只有40分。
423006
傻肥狍子楼主2021/6/10 19:27
#include <bits/stdc++.h>
using namespace std;
const int maxn=1024;
int a[maxn],b[maxn];
int ans;
int main()
{
	int n;  //读入数据量
	scanf("%d",&n);
	int nn=1<<n;
	for(int i=1; i<=nn; i++){
		scanf("%d",&a[i]); //能力 
		b[i] = a[i];   //编号 
	}
	for(int q=1; q<=n; q++){
		if(q==n){
			ans=min(a[1],a[2]);
			break;
		} 
		for(int i=1,j=1; i<=nn-1; i+=2,j++){
			a[j]=max(a[i],a[i+1]);
		}
		nn=nn/2;
	}
	for(int i=1; i<=nn; i++){
		if(ans==b[i]){ 
			printf("%d",i);
			break;
		} 
	} 
	return 0;
 } 
2021/6/10 19:27
加载中...