40分求救
查看原帖
40分求救
502642
HenryQuinlan楼主2022/1/20 21:56
#include<iostream>
#include<cmath>

using namespace std;

int main()
{
	int d=1;
	int nodes[130],max[130];
	int n,m;
	cin>>m;
	n=pow(2,m);
	for(int i=1;i<=n;i++)
	{
		cin>>nodes[i];
		max[i]=i;
	}
	
	while(d<=n/2)
	{
		if(d==n/2)
		{
			if(nodes[1]>nodes[1+d])
			{
				cout<<max[1+d];
			}else
			{
				cout<<max[1];
			}
			break;
		}
		for(int i=1;i<n;i+=(2*d))
		{
			if(nodes[i]<nodes[i+d])
			{
				nodes[i]=nodes[i+d];
				max[i]=i+d;
			}
		}
		d=d*2;
	}
	return 0;
} 
2022/1/20 21:56
加载中...