题目描述
给定一个 1∼n 的排列 p,构建其笛卡尔树。
即构建一棵二叉树,满足:
- 每个节点的编号满足二叉搜索树的性质。
- 节点 i 的权值为 pi,每个节点的权值满足小根堆的性质。
输入格式
第一行一个整数 n。
第二行一个排列 p1…n。
输出格式
设 li,ri 分别表示节点 i 的左右儿子的编号(若不存在则为 0)。
一行两个整数,分别表示 xori=1ni×(li+1) 和 xori=1ni×(ri+1)。
5
4 1 3 2 5
19 21
提示
【样例解释】
i |
li |
ri |
1 |
0 |
2 |
1 |
4 |
3 |
0 |
4 |
3 |
5 |
5 |
0 |
【数据范围】
对于 30% 的数据,n≤103。
对于 60% 的数据,n≤105。
对于 80% 的数据,n≤106。
对于 90% 的数据,n≤5×106。
对于 100% 的数据,1≤n≤107。