Gửi bài giải

Điểm: 2,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 98M
Input: stdin
Output: stdout

Tác giả:
Dạng bài

Bạn được cho một cái cây gồm ~n~ đỉnh và đúng ~n - 1~ cạnh, các đỉnh được đánh số từ ~1~ tới ~n~. Trên mỗi đỉnh ~i~ ban đầu chứa một số nguyên ~v_i~.

Mỗi thao tác, bạn được phép:

  • Chọn một cây con bất kì miễn là cây con đó chứa đỉnh ~1~.
  • Tăng hoặc giảm toàn bộ giá trị trên tất cả các đỉnh của cây con đúng ~1~ đơn vị.

Một cây được gọi là cây O nếu như tất cả các đỉnh có trong cây đều có giá trị là ~0~.

Tính số thao tác ít nhất cần thực hiện để biến cái cây bạn được cho thành cây O.

Đầu vào

Dòng đầu tiên chứa số nguyên dương ~n~ là số lượng đỉnh của cây. ~(1 \le n \le 10^5)~

~n - 1~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~a~ và ~b~ thể hiện đỉnh ~a~ được nối với đỉnh ~b~. ~(1 \le a, b \le n, a ≠ b)~

Dòng cuối cùng chứa ~n~ số nguyên ~v_1, v_2, ..., v_n~ là giá trị ban đầu của các đỉnh trên cây. ~(|v_i| \le 10^9)~

Đầu ra

Một số nguyên duy nhất là số thao tác ít nhất cần thực hiện để biến cây của bạn về cây O.

Giới hạn

~10\%~ số test: ~n \le 10~

~20\%~ số test: ~n \le 1000, |v_i| \le 10^4~

~30\%~ số test: ~|v_i| \le 10^4~

~40\%~ số test: Không có ràng buộc gì thêm

Ví dụ

Đầu vào

3
1 2
1 3
3 -2 1

Đầu ra

7

Giải thích


Đang tải...