구매 최적화
시간 제한1초메모리 제한1024 MB
트리의 각 정점에 구매 개수를 배정해 모든 부분트리의 합이 [l, r] 범위에 들도록 하고, 개수와 단가를 곱한 총비용을 최소로 만듭니다.
문제
스키 장비 대여 네트워크는 루트가 1번 정점인 루트 트리이며, 정점은 부터 까지 번호가 매겨진 개입니다. 각 정점에는 대여소가 하나씩 있고, 번 정점의 대여소는 세트당 루블에 장비를 구매합니다.
를 번 정점의 서브트리에 속한 모든 대여소가 구매하는 장비 세트의 총합이라고 합니다. 마케팅 조사에 따르면 모든 에 대해 여야 합니다.
시즌 시작 전에 각 대여소가 구매할 세트 수를 정하세요. 모든 서브트리의 합이 제한 범위 안에 들어가야 하며, 총 비용은 최소여야 합니다. 마케팅 조건을 모두 만족할 수 없다면 그렇다고 판단하세요.
그래프가 연결되어 있고 사이클이 없으면 트리입니다. 트리의 임의의 두 정점 사이에는 단순 경로가 정확히 하나 있습니다. 루트 트리에는 지정된 루트 정점이 하나 있습니다. 정점 의 서브트리는 루트로 가는 경로에 가 포함되는 모든 정점의 집합이며, 자신도 포함합니다. 정점 의 부모 는 에서 루트로 가는 경로 위에 있으면서 간선으로 와 이어진 정점입니다.
입력
첫 줄에 테스트 케이스 수 가 주어집니다. 각 테스트 케이스의 첫 줄에는 정점 수 ()이 주어집니다.
둘째 줄에는 개의 정수 ()이 주어지며, 는 번 정점의 부모입니다.
다음 줄에는 개의 정수 ()이 주어지며, 는 번 대여소의 세트당 가격입니다.
다음 개의 줄에는 두 정수 , ()가 한 줄에 하나씩 주어집니다. 이는 번 정점 서브트리의 대여소들이 구매하는 세트 총합에 대한 제한입니다.
모든 테스트 케이스의 합은 100000을 넘지 않습니다.
출력
각 테스트 케이스에 대해 다음과 같이 답을 출력합니다.
모든 조건을 만족할 수 없다면 한 줄에 을 출력합니다.
그렇지 않다면 첫 줄에 최소 총 비용(루블)을 출력합니다. 둘째 줄에는 개의 정수 를 출력합니다. 는 번 대여소가 구매할 세트 수입니다. 최소 비용을 달성하는 배치가 여러 개라면 그중 아무것이나 출력해도 됩니다.
힌트
아래 그림은 첫 번째 입력 데이터에 대한 것입니다.

총 지출은 루블입니다.