Nhà hàng IT

Đề bài

Mô tả

Thành phố có n ngã tư được nối với nhau bởi n−1 con đường hai chiều tạo thành một cây (đồ thị vô hướng, liên thông, không có chu trình).

Người ta muốn xây các nhà hàng của hai chuỗi khác nhau — gọi là chuỗi A và chuỗi B — tại các ngã tư. Việc xây phải thỏa mãn:

  • Mỗi ngã tư có nhiều nhất một nhà hàng.
  • Mỗi nhà hàng thuộc đúng một trong hai chuỗi A hoặc B.
  • Cả hai chuỗi A và B đều phải có ít nhất một nhà hàng.
  • Không tồn tại hai ngã tư kề nhau (nối trực tiếp bằng một con đường) mà lại chứa nhà hàng của hai chuỗi khác nhau.

Gọi a là số nhà hàng của chuỗi A và b là số nhà hàng của chuỗi B. Cần chọn cách xây sao cho a+b đạt giá trị lớn nhất có thể.

Hãy tìm tất cả các cặp (a,b) hợp lệ đạt được tổng a+b lớn nhất, và in ra theo thứ tự tăng dần của a.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số ngã tư.
  • n−1 dòng tiếp theo, mỗi dòng chứa hai số nguyên xi,yi (1≤xi,yi≤n) mô tả một con đường nối hai ngã tư xi và yi.

Dữ liệu bảo đảm đồ thị được cho là một cây có n đỉnh.

Dữ liệu ra

  • Dòng đầu in số nguyên z — số cặp (a,b) tìm được.
  • z dòng tiếp theo, mỗi dòng in hai số a và b theo thứ tự a tăng dần.

Ràng buộc

  • 3≤n≤5000

Ví dụ

Input Output Giải thích
5
1 2
2 3
3 4
4 5
3
1 3
2 2
3 1
Cây là đường thẳng 1−2−3−4−5. Một trong các cách đạt (2,2): đặt A tại ngã tư 1,2; đặt B tại ngã tư 4,5; ngã tư 3 để trống.
10
1 2
2 3
3 4
5 6
6 7
7 4
8 9
9 10
10 4
6
1 8
2 7
3 6
6 3
7 2
8 1
Đỉnh 4 là gốc của ba nhánh dài 3: 1−2−3−4, 5−6−7−4, 8−9−10−4. Có thể đặt A trên trọn một nhánh (3 đỉnh) và B trên trọn hai nhánh còn lại (6 đỉnh) — nếu 4 để trống, không có cặp đỉnh kề khác chuỗi.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0