만드는 중입니다

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

짭짤한 물고기

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

요약
어떤 카메라를 잠글지 골라, 잠긴 카메라에만 찍히는 노드의 사과 합에서 잠금 비용을 뺀 값을 최대화합니다.
난이도

어려움10점 중 10점

유형
트리, 동적 계획법
정답자
아직 제출이 없습니다

문제

Little Q에게 노드가 nn개인 사과나무가 있다. 노드는 1,2,…,n1, 2, \ldots, n으로 번호가 매겨져 있고, 루트는 노드 1이다. 각 간선의 길이는 1이다. ii번 노드에는 사과가 aia_i개 있다. 사과 한 개는 1달러에 팔리므로, 사과를 tt개 팔면 tt달러를 번다.

Skywalkert는 Little Q의 친한 친구인데, 프로그래밍 대회에 돈을 걸어서 재산 대부분을 잃었다. 그래서 이 나무에서 사과를 훔쳐 팔아 돈을 벌려고 한다.

보안 시스템은 mm대의 카메라로 한 시간마다 노드들을 촬영한다. d(x,y)d(x, y)를 노드 xx에서 노드 yy까지 최단 경로의 간선 수라고 하자. 집합 p(x,k)p(x, k)는 p(x,k)={y∣y는 x의 서브트리에 속하고 d(x,y)≤k}p(x, k) = \{y \mid y \text{는 } x\text{의 서브트리에 속하고 } d(x, y) \le k\}로 정의한다. x∈p(x,k)x \in p(x, k)이다. ii번 카메라의 화면에는 p(xi,ki)p(x_i, k_i)에 속한 모든 노드가 나타난다. 보안 시스템이 이 화면 중 하나라도 바뀌었다고 감지하면 경보가 울리고, Little Q에게 도둑이 잡힌다.

Skywalkert는 해커이기도 하다. 일부 카메라를 잠가서 그 화면이 절대 바뀌지 않게 할 수 있다. ii번 카메라를 잠그려면 cic_i달러를 내야 한다. Skywalkert는 사과를 훔쳐 판 뒤에 모든 해킹 비용을 지불한다.

잡히지 않으면서 Skywalkert가 가장 많은 돈을 벌 수 있도록 돕는 프로그램을 작성하라.

입력

첫 줄에 테스트 케이스의 수 TT (1≤T≤10 0001 \le T \le 10\,000)가 주어진다.

각 테스트 케이스의 첫 줄에는 노드의 수 nn과 카메라의 수 mm (1≤n,m≤300 0001 \le n, m \le 300\,000)이 주어진다.

다음 줄에는 노드 2,3,…,n2, 3, \ldots, n의 부모를 나타내는 n−1n-1개의 정수 f2,f3,…,fnf_2, f_3, \ldots, f_n (1≤fi<i1 \le f_i < i)이 주어진다.

다음 줄에는 노드 1,2,…,n1, 2, \ldots, n에 있는 사과의 개수를 나타내는 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤1091 \le a_i \le 10^9)이 주어진다.

이어지는 mm개의 줄에는 각각 ii번 카메라의 매개변수인 세 정수 xix_i, kik_i, cic_i (1≤xi≤n1 \le x_i \le n, 0≤ki≤n0 \le k_i \le n, 1≤ci≤1091 \le c_i \le 10^9)가 주어진다.

모든 테스트 케이스의 nn 합은 10610^6 이하이고, mm 합도 10610^6 이하이다.

출력

각 테스트 케이스마다 Skywalkert가 벌 수 있는 최대 금액(달러)을 나타내는 정수 하나를 한 줄에 출력하라.

예제1

  1. 예제 1

    입력
    1
    6 3
    1 1 2 2 3
    2 5 4 3 3 2
    2 1 3
    3 1 7
    1 2 4
    
    예상 출력
    6