20分,求助
查看原帖
20分,求助
835944
gyttnnd楼主2022/12/11 17:07
#include<iostream>
#include<cmath>
using namespace std;
int winner[290];
int n;
int value[390];
void dfs(int x)
{
	if(x>1<<n)
	{
		return ;
	}
	else
	{
		dfs(2*x);
		dfs(2*x+1);
		int a=value[2*x];
		int b=value[2*x+1];
		if(a>=b)
		{
			value[x]=a;
			winner[x]=winner[2*x];
		}
		else
		{
			value[x]=b;
			winner[x]=winner[2*x+1];
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=pow(2,n);i++)
	{
		cin>>value[1<<n+i];
		winner[1<<n+i]=i;
	}
	dfs(1);
	if(value[2]>value[3])
	cout<<winner[2];
	else
	cout<<winner[3];
	return 0;
}
2022/12/11 17:07
加载中...