读研

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Problem Description

小林为了提高自己的姿势水平,打算接着读研究生。因此,他立即联系了彼海姆龙学院。彼海姆龙学院认为必须具有一定的数据结构基础和图论基础才能理解复杂繁琐的魔法系统,因此他们给出了如下考核:
给出一棵NN个点的二叉搜索树的先序遍历,保证二叉搜索树的节点值互不相同。一共有QQ个询问,每个询问有两个数字xi,yix_i,y_i,需要回答他们的最近公共祖先(LCALCA)是谁。

如果两种数字均未出现,那么输出"xix_i and yiy_i are not exist."
如果其中某种数字未出现(以xix_i为例),那么输出"xix_i is not exist."
如果两个数字均在二叉搜索树上,假设他们最近的公共祖先是ziz_i,那么请输出"ziz_i is the ancestor of xix_i and yiy_i."。特别地,如果其中某个数是另一个数的祖先(以xix_i是yiy_i祖先为例),那么改为输出"xix_i is the ancestor of yiy_i."。

对于每个询问,请单独输出一行。
这道题对于小林来说太难了,因此在这里求助,希望你能帮他搞定入学资格。

Input Format

第一行有两个整数NN和QQ,代表二叉搜索树节点个数和询问的次数。
第二行NN个整数,代表该二叉搜索树的先序遍历。
接下来QQ行,每行两个整数xix_i和yiy_i,询问二者的LCALCA。

Output Format

对于每个询问输出一行答案。

Sample

样例输入#1
7 6
8 3 2 5 7 9 10
12 6
6 5
9 1
2 10
5 7
10 8
样例输出#1
12 and 6 are not exist.
6 is not exist.
1 is not exist.
8 is the ancestor of 2 and 10.
5 is the ancestor of 7.
8 is the ancestor of 10.

Hint

1≤N≤1051 \le N \le 10^5,1≤Q≤1061 \le Q \le 10^6。 保证出现的所有数字均在intint范围内。

提示:

二叉搜索树的性质: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树。

先序遍历性质:首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

image

重庆邮电大学第十六届ACM程序设计大赛(现场赛)

未参加
状态
已结束
规则
XCPC
题目
12
开始于
2023-10-15 13:10
结束于
2023-10-15 18:10
持续时间
5 小时
主持人
参赛人数
0