80分,第二个样例不过,求解
查看原帖
80分,第二个样例不过,求解
285961
魏老师楼主2024/11/11 14:51
#include<bits/stdc++.h>
using namespace std;
void f(int);
int a,s=1,d[1000];
int main()
{
	cin>>a;
	for(int i=1;i<=a;i++)
	{
		s*=2;
	}
	for(int i=s;i<2*s;i++)
	{
		cin>>d[i];
	}
	for(int i=1;i<=a;i++)
	{
		f(1);
	}

	if(d[1]==d[2]) d[2]=d[3];
	for(int ii=s;ii<2*s;ii++)
	{
		if(d[ii]==d[2]) 
		{
			cout<<ii+1-s;
			break;
		}
	}
	return 0;
}
void f(int ru)
{
	if(d[ru*2]!=0)
	{
		if(d[ru*2]>d[ru*2+1]) d[ru]=d[ru*2];
		else d[ru]=d[ru*2+1];
	}
	else
	{
		f(ru*2);
		f(ru*2+1);
	} 
}
2024/11/11 14:51
加载中...