Cây bí ẩn

Xem dạng PDF

Gửi bài giải

Điểm: 0,10 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Pemguimn nhặt được mảnh giấy ghi các dòng code của một chương trình như sau:

void dfs(int i, int pre){
    time_in[i] = ++timedfs;
    for(int x : adj[i]){
        if(x == pre) continue;
        dfs(x, i);
    }
    time_out[i] = timedfs;
}

void main(){
    // dựng cây
    dfs(1, -1);
}
  • Được biết, đoạn code trên là mã của một thuật toán nổi tiếng, đường đi Euler trên cây. Ngoài ra, khi tìm được các cạnh của cây thì Pemguimn sẽ biết được mật mã dẫn đến thế giới Anime.

  • Tuy nhiên, cây đã bị giấu mất, và Pemguimn chỉ biết được giá trị của mảng timein[]timeout[] cũng như giá trị ~n~, số đỉnh của cây. Các bạn hãy giúp Pemguimn mở được cánh cổng tới thế giới của harem nhé!

  • Ngoài ra, tồn tại trường hợp ai đó đã chơi khăm Pemguimn và thay đổi giá trị của mảng timein[] hoặc timeout[] nên không tồn tại cây thỏa giá trị của hai mảng trên. Trong trường hợp đó, hãy in ra ~-1~ trên một dòng duy nhất.

Yêu cầu

Cho giá trị ~n~, số đỉnh của cây , và giá trị của các mảng timein[], timeout[] của từng đỉnh được mô tả như trên.

Với mỗi đỉnh ~i~, bạn hãy in ra số đỉnh kể với đỉnh ~i~ trong cây và in ra số hiệu của các đỉnh đấy.

Input

  • Dòng đầu chứa ~n~, số đỉnh của cây, ~n~ (~1 \leq n \leq 5 \cdot 10^5~).

  • Dòng thứ ~i~ trong ~n~ dòng tiếp theo, mỗi dòng chứa hai giá trị timein[i]timeout[i], (~1 \leq~ timein[i], timeout[i] ~\leq n~), lần lượt là giá trị của giá trị timein và timeout của đỉnh thứ ~i~.

Output

Trong trường hợp tồn tại đáp án:

  • In đáp án trên ~2 \times n~ dòng:

    • Dòng thứ ~2 \times i - 1~ in ra ~m~, số đỉnh kề với đỉnh ~i~ trong cây.

    • Dòng thứ ~2 \times i~ in ra ~m~ số, số hiệu của các đỉnh kề với ~i~ được liệt kê theo thứ tự tăng dần, cách nhau bởi dấu cách.

Trong trường hợp không tồn tại cây thỏa đề bài thì in ra ~-1~ trên một dòng duy nhất.

Scoring

  • Subtask 1 (~25\%~): ~n \leq 10~.

  • Subtask 2 (~25\%~): ~n \leq 100~.

  • Subtask 3 (~50\%~): Không có ràng buộc gì thêm.

Sample Input 1

4
1 4
2 4
3 3
4 4

Sample Output 1

1
2 
3
1 3 4 
1
2 
1
2

Notes

  • Trong test ví dụ trên, đỉnh ~1~ kề với ~1~ đỉnh duy nhất trong cây, là đỉnh ~2~.

  • Tương tự, đỉnh ~2~ kề với ~3~ đỉnh là ~1, 3~ và ~4~.

  • Đỉnh ~3~ và ~4~ chỉ kề với một đỉnh duy nhất là đỉnh ~2~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.