40 pts,求助!!!
查看原帖
40 pts,求助!!!
842408
pangyuchen75楼主2024/4/1 10:35
#include <cstdio>
#define N 1005
using namespace std;

int n;
int val[N];
int tot;

struct Node {
	int num;
	Node *le, *rt;
	
	Node() {
		num = 0;
		le = NULL;
		rt = NULL;
	}
};

Node *root;

Node *build_tree(Node *node, int deep) {
	if(deep > n)
		return NULL;
	
	node = new Node();
	node->le = build_tree(node->le, deep + 1);
	node->rt = build_tree(node->rt, deep + 1);
	
	if(deep == n)
		node->num = ++tot;
	else {
		if(val[node->le->num] > val[node->rt->num])
			node->num = node->le->num;
		else
			node->num = node->rt->num;
	}
	
	return node;
}

int main() {
	scanf("%d", &n);
	
	for(int i = 1; i <= (n << 1); ++i)
		scanf("%d", &val[i]);
	
	root = build_tree(root, 0);
	
	if(root->num == root->le->num)
		printf("%d\n", root->rt->num);
	else
		printf("%d\n", root->le->num);
	
	return 0;
}
2024/4/1 10:35
加载中...