만드는 중입니다

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

구매 최적화

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

요약
트리의 각 정점에 구매 개수를 배정해 모든 부분트리의 합이 [l, r] 범위에 들도록 하고, 개수와 단가를 곱한 총비용을 최소로 만듭니다.
난이도

어려움10점 중 8점

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

문제

스키 장비 대여 네트워크는 루트가 1번 정점인 루트 트리이며, 정점은 11부터 nn까지 번호가 매겨진 nn개입니다. 각 정점에는 대여소가 하나씩 있고, ii번 정점의 대여소는 세트당 cic_i루블에 장비를 구매합니다.

aia_i를 ii번 정점의 서브트리에 속한 모든 대여소가 구매하는 장비 세트의 총합이라고 합니다. 마케팅 조사에 따르면 모든 ii에 대해 li≤ai≤ril_i \le a_i \le r_i여야 합니다.

시즌 시작 전에 각 대여소가 구매할 세트 수를 정하세요. 모든 서브트리의 합이 제한 범위 안에 들어가야 하며, 총 비용은 최소여야 합니다. 마케팅 조건을 모두 만족할 수 없다면 그렇다고 판단하세요.

그래프가 연결되어 있고 사이클이 없으면 트리입니다. 트리의 임의의 두 정점 사이에는 단순 경로가 정확히 하나 있습니다. 루트 트리에는 지정된 루트 정점이 하나 있습니다. 정점 vv의 서브트리는 루트로 가는 경로에 vv가 포함되는 모든 정점의 집합이며, vv 자신도 포함합니다. 정점 vv의 부모 pvp_v는 vv에서 루트로 가는 경로 위에 있으면서 간선으로 vv와 이어진 정점입니다.

입력

첫 줄에 테스트 케이스 수 tt가 주어집니다. 각 테스트 케이스의 첫 줄에는 정점 수 nn (1≤n≤1000001 \le n \le 100000)이 주어집니다.

둘째 줄에는 n−1n-1개의 정수 p2,p3,…,pnp_2, p_3, \ldots, p_n (1≤pi<i1 \le p_i < i)이 주어지며, pip_i는 ii번 정점의 부모입니다.

다음 줄에는 nn개의 정수 c1,…,cnc_1, \ldots, c_n (1≤ci≤1091 \le c_i \le 10^9)이 주어지며, cic_i는 ii번 대여소의 세트당 가격입니다.

다음 nn개의 줄에는 두 정수 lil_i, rir_i (0≤li≤ri≤1090 \le l_i \le r_i \le 10^9)가 한 줄에 하나씩 주어집니다. 이는 ii번 정점 서브트리의 대여소들이 구매하는 세트 총합에 대한 제한입니다.

모든 테스트 케이스의 nn 합은 100000을 넘지 않습니다.

출력

각 테스트 케이스에 대해 다음과 같이 답을 출력합니다.

모든 조건을 만족할 수 없다면 한 줄에 −1-1을 출력합니다.

그렇지 않다면 첫 줄에 최소 총 비용(루블)을 출력합니다. 둘째 줄에는 nn개의 정수 bib_i를 출력합니다. bib_i는 ii번 대여소가 구매할 세트 수입니다. 최소 비용을 달성하는 배치가 여러 개라면 그중 아무것이나 출력해도 됩니다.

힌트

아래 그림은 첫 번째 입력 데이터에 대한 것입니다.

총 지출은 c1⋅b1+c2⋅b2+c3⋅b3=0+2+6=8c_1 \cdot b_1 + c_2 \cdot b_2 + c_3 \cdot b_3 = 0 + 2 + 6 = 8루블입니다.

예제1

  1. 예제 1

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