trang chủ / đề bài / dhbb23_hlk_10_c

Tặng quà

Đề bài

Mô tả

Sau một ngày làm việc vất vả, Phát sẽ thưởng cho mình bằng những bữa ăn với những trái ớt ngon lành.

Anh ta có n trái ớt được nối với nhau qua n−1 cành, hai trái ớt bất kì luôn được nối với nhau qua chuỗi những cành. Tóm lại, những trái ớt đó tạo thành cây.

Phát sẽ có ba bữa ăn trong ngày. Để chuẩn bị cho bữa ăn, anh ta sẽ cắt 2 cành cây bất kì (hai cành khác nhau) để có được 3 đùm ớt, mỗi đùm cho mỗi bữa. Mỗi đùm là một phần liên thông còn lại sau khi cắt, số trái ớt của đùm là số trái ớt trong phần đó.

Tuy nhiên Phát không muốn bất kì bữa ăn nào quá cay, nên anh ấy quyết định cắt sao cho độ chênh lệch giữa đùm có nhiều ớt nhất và đùm có ít ớt nhất là nhỏ nhất.

Yêu cầu: Hãy giúp Phát tìm độ chênh lệch nhỏ nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số lượng ớt. Các trái ớt được đánh số từ 1 đến n;
  • Mỗi dòng trong n−1 dòng còn lại gồm 2 số nguyên x và y (1≤x,y≤n) là số hiệu 2 trái ớt nối trực tiếp với nhau.

Dữ liệu đảm bảo các cành tạo thành một cây.

Dữ liệu ra

In ra độ chênh lệch tối thiểu giữa đùm có nhiều ớt nhất và đùm có ít ớt nhất.

Ràng buộc

  • 3≤n≤200000;
  • 1≤x,y≤n.

Subtasks

  • Subtask 1 (25% số điểm): 3≤n≤200;
  • Subtask 2 (25% số điểm): 3≤n≤2000;
  • Subtask 3 (50% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
4
1 2
2 3
3 4
1 Có 3 cách cắt để tạo thành một đùm có 2 trái ớt và hai đùm có 1 trái ớt. Do đó độ chênh lệch là 2−1=1.
6
1 2
1 3
3 4
3 5
5 6
0 Cắt cành 1−3 và cành 3−5 được ba đùm {1,2}, {3,4}, {5,6}, mỗi đùm 2 trái ớt.
9
1 3
2 3
3 4
3 5
5 6
5 7
7 8
7 9
2 Cắt cành 3−5 và cành 5−7, số lượng trái ớt trong các đùm lần lượt là 4,2,3 nên kết quả là 4−2=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.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