QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#18669. Khôi phục cây tìm kiếm nhị phân

الإحصائيات

Chansol đã tạo một cây tìm kiếm nhị phân gồm $N$ nút, mỗi nút được ghi một số nguyên. Cây tìm kiếm nhị phân là một cây nhị phân sao cho với mọi nút $i$, tất cả các số ghi trên các nút thuộc cây con trái của $i$ đều nhỏ hơn số ghi trên $i$, và tất cả các số ghi trên các nút thuộc cây con phải của $i$ đều lớn hơn số ghi trên $i$.

Chansol đã ghi lại độ sâu $H_i$ của nút $i$ và số nguyên $A_i$ ghi trên nút $i$ của cây tìm kiếm nhị phân, với mọi $i$. Ở đây, các giá trị $A_i$ đôi một khác nhau và độ sâu của nút gốc là $1$. ($1 \le i \le N$)

Trong thời gian Chansol đi tham dự ICPC World Finals, cây tìm kiếm nhị phân đã bị thất lạc. Hãy giúp Chansol khôi phục lại cây tìm kiếm nhị phân từ các thông tin đã ghi lại.

Dữ liệu vào

Dòng đầu tiên chứa số lượng nút $N$. ($1 \leq N \leq 200\,000$)

$N$ dòng tiếp theo, mỗi dòng chứa thông tin về một nút của cây. Với mọi $1 \leq i \leq N$, dòng thứ $(i+1)$ chứa số nguyên $A_i$ ghi trên nút $i$ và độ sâu $H_i$ của nút $i$, cách nhau bởi một dấu cách. ($-2\cdot 10^9\leq A_i \leq 2\cdot 10^9$; $1 \leq H_i \leq N$) Các giá trị $A_i$ đôi một khác nhau.

Dữ liệu ra

Nếu không thể khôi phục cây tìm kiếm nhị phân từ các thông tin đã cho, in ra $-1$.

Nếu có thể khôi phục, in ra cấu trúc của cây trên $N$ dòng.

Dòng thứ $i$ in ra số hiệu của nút con trái và nút con phải của nút $i$. Nếu không có con, in ra $-1$ thay cho số hiệu nút con.

Nếu có nhiều cây có thể khôi phục, bạn có thể in ra bất kỳ cây nào.

Ví dụ

Dữ liệu vào 1

3
1 2
2 1
3 2

Dữ liệu ra 1

-1 -1
1 3
-1 -1

Dữ liệu vào 2

3
1 1
2 2
3 2

Dữ liệu ra 2

-1

Dữ liệu vào 3

3
2 2
5 3
4 2

Dữ liệu ra 3

-1

Dữ liệu vào 4

3
100 2
200 1
300 2

Dữ liệu ra 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.