Notice
Chào mừng bạn đến với OREOJ


Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 2.5s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Croatian Open Competition in Informatics (COCI)
Dạng bài
Ngôn ngữ cho phép
Assembly, AWK, C, C++, C++20, Go, Java, Kotlin, Pascal, Perl, PyPy, Python, Rust, Scratch, SED, Text

Tại thành phố Shumen ở Bulgaria có một cây ma thuật lớn gồm ~n~ đỉnh liên thông. Mỗi đỉnh chứa hai giá trị ma thuật: giá trị đỏ ~c_i~ và giá trị xanh ~p_i~. Tùy vào màu được chọn cho đỉnh đó mà ta nhận giá trị tương ứng.

Xét đường đi ngắn nhất từ đỉnh bắt đầu ~A~ tới đỉnh kết thúc ~B~ trên cây. Ta duyệt các đỉnh trên đường đi theo thứ tự và, với mỗi đỉnh hiện tại, chọn một trong hai màu đỏ hoặc xanh.

Sau mỗi lần tô màu, trạng thái hiện tại của đường đi phải luôn "hài hòa", tức là không có màu nào áp đảo màu còn lại. Ta nói một màu áp đảo màu kia nếu số lần màu đó đã được chọn nhiều hơn màu còn lại ít nhất ~3~ lần. Điều kiện này phải đúng ở mọi thời điểm trong suốt quá trình duyệt đường đi thì đường đi mới được coi là hài hòa.

Giá trị của một đường đi được định nghĩa là tổng giá trị của các đỉnh trên đường đi, trong đó giá trị mỗi đỉnh là giá trị ứng với màu đã chọn cho đỉnh đó.

Bạn được cho ~q~ truy vấn, mỗi truy vấn gồm đỉnh đầu và đỉnh cuối của một đường đi. Với mỗi truy vấn, hãy xác định giá trị lớn nhất của một cách tô màu hài hòa trên đường đi đó.

Theo định nghĩa trên, có thể chứng minh rằng giữa mọi cặp đỉnh luôn tồn tại ít nhất ~1~ đường đi hài hòa.

Input

Dòng đầu tiên chứa hai số nguyên dương ~n~ và ~q~: số đỉnh của cây và số truy vấn. Bảo đảm ~1 \le n, q \le 10^5~.

Dòng thứ hai chứa ~n~ số nguyên ~c_i~, là giá trị đỏ của các đỉnh, với ~-10^9 \le c_i \le 10^9~.

Dòng thứ ba chứa ~n~ số nguyên ~p_i~, là giá trị xanh của các đỉnh, với ~-10^9 \le p_i \le 10^9~.

~n - 1~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~u~ và ~v~, biểu thị có một cạnh nối giữa hai đỉnh đó. Bảo đảm ~1 \le u, v \le n~ và ~u \ne v~.

~q~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~u~ và ~v~, là hai đầu mút của truy vấn.

Output

Với mỗi truy vấn, in ra trên một dòng riêng một số nguyên: giá trị lớn nhất của một đường đi hài hòa giữa hai đỉnh được hỏi.

Chấm điểm

  • Subtask ~1~ (~27~ điểm): ~n, q \le 15~
  • Subtask ~2~ (~41~ điểm): ~n, q \le 1000~
  • Subtask ~3~ (~19~ điểm): ~q \le 10000~
  • Subtask ~4~ (~23~ điểm): Không có ràng buộc bổ sung.

Sample Input ~1~

4 1
10 10 10 10
-10 0 -10 0
1 2
2 3
3 4
1 4

Sample Output ~1~

30

Sample Input ~2~

5 3
-5 -4 0 -3 3
3 1 -5 0 0
3 2
1 4
3 5
1 2
2 5
1 4

Sample Output ~2~

4
3
3

Giải thích

  • Ví dụ ~1~: Nếu tô đỉnh ~1~ màu đỏ, đỉnh ~2~ màu xanh, và các đỉnh ~3~, ~4~ màu đỏ, ta thu được một đường đi hài hòa có giá trị ~30~. Không thể đạt giá trị lớn hơn, vì trong ~4~ đỉnh trên đường đi ta buộc phải tô ít nhất ~1~ đỉnh màu xanh, và trong ví dụ này các giá trị xanh không giúp tổng tăng thêm.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.