求助
查看原帖
求助
394119
Nolan_Tomato楼主2021/9/17 13:21
#include <cstdio>
int n, nn = 1, flag, label, i;
int a[2*2*2*2*2*2*2 + 1][2];//左子(1) 和 右子 (2) 
int compare(int a, int b)
{
	if(a > b) 
	{
		label = i + 1;
		return a;
	}
	if(a < b) 
	{
		label = i;
		return b;
	}
}
int main()
{
	scanf("%d", &n);
	for(int j = 1; j <= n; j++) nn = nn * 2;
	for(int j = 1; j <= nn / 2; j++)
	{
		scanf("%d", &a[j][1]);
		scanf("%d", &a[j][2]);
	}
	while(nn != 0)
	{
		for( i = 1; i <= nn / 2; i++)
		{
			if(flag == 0) 
			{
				a[i][1] = compare(a[i][1], a[i][2]);
				flag = 1;
			}
			if(flag == 1)
			{
				a[i - 1][2] = compare(a[i][1], a[i][2]);
				flag = 0;
			}
		}
		nn /= 2;
	}
//	printf("%d", a[1][1]);
	printf("%d", label);
	return 0;
}
2021/9/17 13:21
加载中...