만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

설명하기 어려운 문제

시간 제한3초메모리 제한1024 MB

요약
루트에서 정점 V까지 경로에 있는 정점 중 C_i가 T 이상인 정점들에 대해 A_i + B_i × T의 최솟값을 구하는 문제입니다.
난이도

어려움10점 중 8점

유형
트리, DFS, 정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

NN개의 정점과 N−1N-1개의 간선으로 이루어진 트리가 주어진다. 1번 정점은 트리의 루트이다. 각 정점 ii에는 양의 정수 Ai,Bi,CiA_i, B_i, C_i가 주어지며, C1=109C_1 = 10^9이다. 또한 1이 아닌 모든 정점 xx에 대해 Bparent(x)≤BxB_{parent(x)} \le B_x이다. 여기서 parent(x)parent(x)는 xx의 부모 정점이다.

숫자가 적힌 트리를 보면 자연스럽게 질의를 하고 싶어진다. 각 질의는 정점 VV와 정수 TT로 주어진다. 1번 정점과 VV를 잇는 최단 경로 위에 있고 Ci≥TC_i \geq T를 만족하는 모든 정점 ii에 대해, Ai+Bi×TA_i + B_i \times T의 최솟값을 구한다. T≤109T \le 10^9이면 최솟값이 항상 존재한다.

입력

첫 줄에 두 정수 NN과 QQ가 주어진다 (1≤N≤800001 \le N \le 80000, 1≤Q≤1600001 \le Q \le 160000).

다음 줄에 NN개의 정수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 주어진다 (1≤Ai≤1091 \le A_i \le 10^9).

다음 줄에 NN개의 정수 B1,B2,⋯ ,BNB_1, B_2, \cdots, B_N이 주어진다 (1≤Bi≤1091 \le B_i \le 10^9).

다음 줄에 NN개의 정수 C1,C2,⋯ ,CNC_1, C_2, \cdots, C_N이 주어진다 (1≤Ci≤1091 \le C_i \le 10^9).

이어지는 N−1N-1개의 줄에는 간선의 양 끝점 XX와 YY가 주어진다 (1≤X,Y≤N1 \le X, Y \le N).

이어지는 QQ개의 줄에는 질의의 인자인 정점 VV와 정수 TT가 주어진다 (1≤V≤N1 \le V \le N, 0≤T≤1090 \le T \le 10^9).

C1=109C_1 = 10^9이고, 1이 아닌 모든 정점 xx에 대해 Bparent(x)≤BxB_{parent(x)} \le B_x임이 보장된다.

출력

QQ개의 줄을 출력한다. 각 줄에는 해당 질의의 답인 최솟값을 정수 하나로 출력한다.

예제1

  1. 예제 1

    입력
    5 2
    5 4 3 2 1
    1 2 3 4 5
    1000000000 2 4 5 2
    1 2
    1 3
    2 4
    2 5
    4 0
    4 2
    
    예상 출력
    2
    7