Submit solution
Points:
1.40 (partial)
Time limit:
1.0s
Memory limit:
512M
Input:
stdin
Output:
stdout
Problem source:
Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, 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