trang chủ / bài tập / barntree

Cây Chuồng

Đề bài

Mô tả

Farmer John quản lý N chuồng bò (2N2×105) được nối với nhau bởi N1 con đường tạo thành cấu trúc cây. Chuồng thứ j chứa hj bó cỏ (1hj109). Tổng số bó cỏ chia hết cho N.

Farmer John cần phân phối lại cỏ sao cho mỗi chuồng có số bó cỏ bằng nhau. Anh ta có thể ra lệnh vận chuyển cỏ giữa hai chuồng kề nhau. Mỗi lệnh chỉ định chuồng nguồn, chuồng đích, và số bó cỏ cần chuyển (không vượt quá số cỏ hiện có tại chuồng nguồn).

Hãy tìm số lệnh vận chuyển tối thiểu và đưa ra một cách thực hiện hợp lệ.

Dữ liệu vào

  • Dòng 1: số nguyên N.
  • Dòng 2: N số nguyên h1,h2,,hN.
  • N1 dòng tiếp theo: mỗi dòng chứa hai số nguyên ui,vi mô tả một cạnh.

Dữ liệu ra

  • Dòng 1: số lệnh vận chuyển tối thiểu K.
  • K dòng tiếp theo: mỗi dòng chứa ba số nguyên: chuồng nguồn, chuồng đích, số bó cỏ.

Ràng buộc

  • 2N2×105
  • 1hj109
  • Tổng hj chia hết cho N

Ví dụ

Input Output Giải thích
4
2 1 4 5
1 2
2 3
2 4
3
3 2 1
4 2 2
2 1 1
Tổng = 12, trung bình = 3. Chuyển 1 bó từ chuồng 3 sang 2, 2 bó từ chuồng 4 sang 2, rồi 1 bó từ chuồng 2 sang 1.

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