VM 15 Bài 15 - Cắt cây

View as PDF

Submit solution

Points: 1.40 (partial)
Time limit: 1.0s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
VM15 - Minh
Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho một đồ thị dạng cây gồm ~N~ đỉnh, đỉnh thứ ~i~ có trọng số là ~w_i~. Cho ~K~ lần cắt cây (bằng cạnh xóa đi ~1~ cạnh đang có), ta sẽ tạo ra một rừng gồm ~K+1~ cây. Trọng số của một cây được định nghĩa là tổng trọng số các đỉnh trong cây đó.

Bài toán yêu cầu bạn hãy tìm cách cắt cây sao cho trọng số to nhất của các cây là nhỏ nhất.

Input

Dòng đầu tiên gồm ~2~ số ~N~, ~K~ (~K < N~)

Dòng tiếp theo gồm ~N~ số là trọng số của các đỉnh

N-1 dòng tiếp theo, mỗi dòng gồm ~2~ số ~u~, ~v~ mô tả một cạnh của cây

Output

Một số nguyên duy nhất là trọng số bé nhất.

Sample Input

8 2
7 4 3 8 5 7 5 4
2 1
3 1
4 3
5 2
6 1
7 6
8 1

Sample Output

20

Note

  • ~0 \le K < N \le 10^{5}~
  • ~0 < w_{i} \le 10^{4}~
  • Trong ~20\%~ số test, ~N \le 20~
  • Trong ~20\%~ số test tiếp theo, ~N \le 200~
  • Trong ~20\%~ số test tiếp theo, ~N \le 1000~, trọng số các đỉnh bằng ~1~.

Comments

Please read the guidelines before commenting.


There are no comments at the moment.