QOJ.ac

QOJ

시간 제한: 2 s 메모리 제한: 1024 MB 총점: 100 해킹 가능 ✓

#18669. 恢复二叉搜索树

통계

찬솔이 构造了一棵有 $N$ 个节点、每个节点上写有整数的二叉搜索树。二叉搜索树是一棵二叉树,对于每个节点 $i$,$i$ 的左子树中所有节点上的数都小于 $i$ 上的数,$i$ 的右子树中所有节点上的数都大于 $i$ 上的数。

찬솔이 记录了所有 $i$ 的二叉搜索树中节点 $i$ 的深度 $H_i$ 以及节点 $i$ 上的整数 $A_i$。其中,所有 $A_i$ 互不相同,且根节点的深度为 $1$。($1 \le i \le N$)

찬솔이 在参加 ICPC World Finals 期间丢失了这棵二叉搜索树。请帮助 찬솔이 利用之前记录的信息恢复这棵二叉搜索树。

输入格式

第一行给出节点个数 $N$。($1 \leq N \leq 200\,000$)

接下来 $N$ 行,每行给出树的节点信息。对于所有 $1 \leq i \leq N$,第 $(i+1)$ 行包含节点 $i$ 上的整数 $A_i$ 和节点 $i$ 的深度 $H_i$,以空格分隔。($-2\cdot 10^9\leq A_i \leq 2\cdot 10^9$;$1 \leq H_i \leq N$) 所有 $A_i$ 互不相同。

输出格式

如果无法根据给定的记录恢复二叉搜索树,则输出 $-1$。

如果可以恢复,则输出 $N$ 行表示树的结构。

第 $i$ 行输出节点 $i$ 的左孩子和右孩子的节点编号。如果没有孩子,则输出 $-1$ 作为孩子编号。

如果存在多种可能的树,输出任意一种即可。

样例

输入格式 1

3
1 2
2 1
3 2

输出格式 1

-1 -1
1 3
-1 -1

输入格式 2

3
1 1
2 2
3 2

输出格式 2

-1

输入格式 3

3
2 2
5 3
4 2

输出格式 3

-1

输入格式 4

3
100 2
200 1
300 2

输出格式 4

-1 -1
1 3
-1 -1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.