Đồ chơi và dây kim tuyến

Xem PDF

Điểm: 2100 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Sau nhiều ngày kỳ công chuẩn bị, sinh nhật hoành tráng và bùng nổ nhất của Đôn cuối cùng cũng diễn ra. Cậu đã nhận được rất nhiều lời chúc và đương nhiên là rất nhiều món quà. Trong số đó, nổi bật hơn cả chính là món quà của thầy Nhỏ. Tuy tên thầy là Nhỏ nhưng món quà thầy dành cho Đôn không hề nhỏ một chút nào. Món quà gồm có \(n\) món đồ chơi đánh số từ \(1\) tới \(n\). Đồ chơi thứ \(i\) có độ yêu thích \(a_i\). Các đồ chơi được nối với nhau bằng \(n-1\) sợi dây kim tuyến sặc sỡ, trong đó sợi dây thứ \(i\) nối đồ chơi thứ \(u_i\)\(v_i\) với nhau.

Tuy nhiên, đâu phải dễ dàng gì mà được nhận quà của thầy Nhỏ. Thầy sẽ cắt từ món quà của mình một "đoạn" đồ chơi và dây kim tuyến sao cho "đoạn" này hoặc chỉ gồm một món đồ chơi duy nhất, hoặc có thể duỗi thành một đường thẳng có đầu thứ nhất là đồ chơi thứ \(s_i\), đầu thứ hai là đồ chơi thứ \(t_i\), ở giữa là không, một hoặc một số món đồ chơi khác và giữa hai đồ chơi liền kề có một dây kim tuyến. Sau khi thầy cắt xong, Đôn sẽ được bỏ đi một số đồ chơi kề nhau tùy ý ở hai đầu của "đoạn" vừa cắt (có thể không bỏ đồ chơi nào hoặc bỏ tất cả) và nhận về toàn bộ các đồ chơi còn lại trong "đoạn".

Với mỗi cách cắt của thầy Nhỏ, hãy giúp Đôn bỏ đi một số đồ chơi sao cho tổng độ yêu thích của các đồ chơi Đôn nhận được là lớn nhất.

Dữ liệu đảm bảo giữa hai đồ chơi khác nhau bất kỳ tồn tại đúng duy nhất một "đoạn" đồ chơi và dây kim tuyến có hai đầu là hai đồ chơi này.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(q\) (\(1 \leq n, q \leq 2 \cdot 10 ^ 5\)) lần lượt là số lượng món đồ chơi và số lượng cách cắt của thầy Nhỏ.
  • Dòng tiếp theo chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(|a_i| \leq 10 ^ 9\)) là độ yêu thích của các món quà.
  • Trong \(n - 1\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(u_i\)\(v_i\) (\(1 \leq u_i, v_i \leq n\)) cho biết dây thứ \(i\) nối đồ chơi thứ \(u_i\)\(v_i\) với nhau.
  • Trong \(q\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(s_i\)\(t_i\) (\(1 \leq s_i, t_i \leq n\)) mô tả một cách cắt của thầy Nhỏ.

Output

  • Ứng với mỗi cách cắt, in ra một số nguyên là độ yêu thích lớn nhất của các đồ chơi Đôn nhận được.

Scoring

  • Subtask \(1\) (\(15\%\) số điểm): Mỗi món đồ chơi nối với không quá \(2\) món đồ chơi khác và \(n, q \leq 2 \cdot 10 ^ 2\).
  • Subtask \(2\) (\(15\%\) số điểm): Mỗi món đồ chơi nối với không quá \(2\) món đồ chơi khác và \(n, q \leq 2 \cdot 10 ^ 3\).
  • Subtask \(3\) (\(20\%\) số điểm): Mỗi món đồ chơi nối với không quá \(2\) món đồ chơi khác.
  • Subtask \(4\) (\(15\%\) số điểm): \(n, q \leq 2 \cdot 10 ^ 2\).
  • Subtask \(5\) (\(15\%\) số điểm): \(n, q \leq 2 \cdot 10 ^ 3\).
  • Subtask \(6\) (\(20\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
5 3
4 -3 -2 5 -1
1 2
1 3
2 4
2 5
3 4
5 3
2 5
Output
6
4
0
Note

Hình minh hoạ:


Bình luận

Không có bình luận nào.