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

Chloe và những phần quà

Đề bài

Mô tả

Cho một cây có gốc gồm n đỉnh, gốc là đỉnh 1. Mỗi đỉnh i có một trọng số ai (có thể âm, dương hoặc bằng 0).

Với một đỉnh v bất kỳ, gọi cây con của v là tập hợp gồm v cùng tất cả các đỉnh nằm phía dưới v (con, cháu... của v). Tổng của một cây con là tổng trọng số của mọi đỉnh thuộc cây con đó.

Hãy chọn ra hai đỉnh khác nhau uv sao cho cây con của u và cây con của v không giao nhau (không có đỉnh nào thuộc cả hai cây con). Trong tất cả các cách chọn như vậy, hãy tìm giá trị lớn nhất của tổng hai cây con đã chọn.

Nếu không tồn tại cặp đỉnh nào thỏa mãn, in ra Impossible.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số đỉnh của cây.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — trọng số của các đỉnh.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên uv (uv) cho biết có một cạnh nối hai đỉnh uv. Một trong hai đỉnh là cha của đỉnh còn lại; thứ tự có thể tùy ý.

Dữ liệu đảm bảo mọi đỉnh đều thuộc cây có gốc là đỉnh 1.

Dữ liệu ra

In ra một số nguyên — tổng lớn nhất có thể đạt được, hoặc Impossible nếu không thể chọn được cặp đỉnh hợp lệ.

Ràng buộc

  • 1n2·105
  • 109ai109
  • 1u,vn, uv

Ví dụ

Input Output Giải thích
8
0 5 -1 4 3 2 6 5
1 2
2 4
2 5
1 3
3 6
6 7
6 8
25 Chọn cây con gốc 2 (gồm các đỉnh 2,4,5, tổng 5+4+3=12) và cây con gốc 6 (gồm 6,7,8, tổng 2+6+5=13). Hai cây con này rời nhau, cho tổng 12+13=25 — lớn nhất có thể.
4
1 -5 1 1
1 2
1 4
2 3
2 Hai cây con rời nhau tốt nhất là đỉnh 4 (tổng 1) và đỉnh 3 (tổng 1), cho tổng 2.
1
-1
Impossible Cây chỉ có một đỉnh nên không thể chọn hai đỉnh có cây con rời nhau.

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