Khôi phục cây

Đề bài

Mô tả

Cho một cây (đồ thị vô hướng, liên thông, không chu trình) gồm n đỉnh được đánh số bằng các số phân biệt từ 1 đến n. Với mỗi cạnh e của cây, người ta ghi lại hai số: chỉ số lớn nhất trong mỗi một trong hai thành phần liên thông nhận được khi xoá cạnh e (và chỉ xoá đúng cạnh đó) khỏi cây.

Bạn được cho danh sách n1 cặp số như vậy. Hãy chỉ ra một cây bất kì sinh ra đúng danh sách đã cho (có thể theo thứ tự bất kì), hoặc khẳng định rằng không tồn tại cây nào như thế.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số đỉnh của cây.
  • Mỗi dòng trong n1 dòng tiếp theo chứa hai số nguyên aibi — chỉ số lớn nhất trong mỗi thành phần liên thông khi xoá cạnh thứ i.

Dữ liệu ra

Nếu không tồn tại cây thoả mãn, in ra một dòng duy nhất chứa NO.

Ngược lại, in ra YES ở dòng đầu, sau đó n1 dòng, mỗi dòng chứa hai số nguyên xiyi (1xi,yin) mô tả một cạnh của cây. Thứ tự các cạnh có thể tuỳ ý. Nếu có nhiều cây phù hợp, in ra một cây bất kì.

Ràng buộc

  • 2n1000
  • 1ai<bin

Ví dụ

Input Output Giải thích
4
3 4
1 4
3 4
YES
4 2
2 3
3 1
Cây là đường 4231. Xoá cạnh 42 cho hai thành phần {4}{2,3,1}, max là (3,4). Xoá cạnh 23 cho {4,2}{3,1}, max là (3,4). Xoá cạnh 31 cho {4,2,3}{1}, max là (1,4). Bất cứ cây nào sinh ra danh sách cặp này (có thể đổi thứ tự) đều được chấp nhận.
3
1 3
1 3
NO Không tồn tại cây trên 3 đỉnh mà hai cạnh đều cho cùng cặp (1,3).
3
1 2
2 3
NO Số lớn nhất giữa hai thành phần phải bằng n=3 ở mọi cặp, nhưng cặp đầu là (1,2).

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0