만드는 중입니다

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

휘발유 가격

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

요약
트리의 각 정점에 가격 범위가 주어지고, 매년 두 경로의 대응하는 정점 가격이 같아야 한다는 조건이 추가됩니다. 각 해마다 가능한 가격 배정의 수를 구합니다.
난이도

어려움10점 중 9점

유형
트리, 유니온 파인드, 문자열 매칭
정답자
아직 제출이 없습니다

문제

베를란디야는 nn개의 도시로 이루어진 거대한 나라다. 도로망은 뿌리가 있는 트리 모양이며, 나라 전체 도로는 n−1n - 1개다. 두 도시를 잇는 길은 도시를 두 번 방문하지 않는 한 정확히 하나뿐이다. 각 도시 ii마다 도시 1로 가려면 도시 ii에서 처음으로 가야 하는 도시 pip_i가 정해져 있다. 즉, 도시 1을 루트로 하여 트리를 매달았을 때 pip_i는 도시 ii의 부모다. 각 도시에는 주유소가 하나씩 있다. 주유소 ii는 lil_i 이상 rir_i 이하의 어떤 가격으로든 휘발유를 팔 수 있다. 왕에게는 mm년 동안 해마다 아들 둘이 태어난다. 아들들은 어릴 때부터 국정에 참여하며, 매년 말에 휘발유 가격이 공정한지 점검한다. ii년에 태어난 아들들은 aia_i에서 bib_i까지 가는 길과 cic_i에서 did_i까지 가는 길의 가격을 점검한다. 점검은 다음과 같이 진행된다. 두 아들은 동시에 aia_i와 cic_i에서 출발한다. 첫째 아들은 aia_i에서 bib_i까지, 둘째 아들은 cic_i에서 did_i까지 걷는다. 먼저 aia_i의 가격과 cic_i의 가격이 같은지 확인한다. 다음으로 두 경로의 두 번째 도시 가격이 같은지 확인한다. 세 번째, 네 번째 도시도 같은 방식으로 짝지어 확인하고, 마지막으로 bib_i의 가격과 did_i의 가격이 같은지 확인한다. 두 경로의 길이는 항상 같다고 보장된다. 주유소는 법을 엄격히 지켜야 하므로 어떤 점검에서도 위반이 나오면 안 된다. 주유소들이 mm년 동안 가격을 정하는 방법의 수를 구한다. 즉, 각 ii (1≤i≤m1 \le i \le m)에 대해, 처음 ii쌍의 아들이 태어난 뒤 모든 점검을 통과하고 모든 주유소의 가격이 허용 범위 안에 있도록 가격을 정하는 방법의 수를 구한다. 답은 109+710^9+7로 나눈 나머지로 출력한다.

입력

첫 줄에 도시의 수 nn (1≤n≤2000001 \le n \le 200000)이 주어진다. 둘째 줄에는 n−1n-1개의 정수 p2,p3,…,pnp_2, p_3, \ldots, p_n (1≤pi≤n1 \le p_i \le n)이 주어진다. 이어지는 nn개의 줄에는 주유소 ii의 허용 가격 범위 lil_i, rir_i (1≤li≤ri<109+71 \le l_i \le r_i < 10^9+7)가 주어진다. 다음 줄에는 mm (1≤m≤2000001 \le m \le 200000)이 주어진다. 이어지는 mm개의 줄에는 aia_i, bib_i, cic_i, did_i (1≤ai,bi,ci,di≤n1 \le a_i, b_i, c_i, d_i \le n)가 주어진다. aia_i에서 bib_i까지의 길이와 cic_i에서 did_i까지의 길이는 같다고 보장된다.

출력

mm개의 줄에 각각 정수 하나를 출력한다. ii번째 줄에는 ii년까지 태어난 아들들이 위반을 찾지 못하는 가격 설정 방법의 수를 109+710^9+7로 나눈 나머지로 출력한다.

힌트

첫 번째 예시를 살펴보자. 처음 두 아들이 태어난 뒤 도시 1과 2의 가격은 같아야 한다. 두 도시의 허용 범위에 모두 들어가는 공통 가격을 고르는 방법은 2가지다. 따라서 전체 방법 수는 2⋅3⋅3⋅1=182 \cdot 3 \cdot 3 \cdot 1 = 18이다. 두 번째 쌍은 경로 1−21 - 2와 2−12 - 1을 점검한다. 도시 1과 2의 가격은 이미 같으므로 두 번째 쌍이 태어나도 답은 바뀌지 않는다. 세 번째 쌍은 경로 3−1−2−43 - 1 - 2 - 4와 4−2−1−34 - 2 - 1 - 3을 점검한다. 그러면 도시 3과 4의 가격이 같아야 하고, 도시 1과 2의 가격도 같아야 한다. 도시 1과 2는 이미 일치한다. 도시 3과 4가 각자의 범위 안에서 공통 가격을 고르는 방법은 2가지다. 따라서 전체 방법 수는 2⋅2⋅1=62 \cdot 2 \cdot 1 = 6이다. 네 번째 쌍은 경로 3−1−2−43 - 1 - 2 - 4와 3−1−2−53 - 1 - 2 - 5를 점검한다. 그러면 도시 4와 5의 가격이 같아야 한다. 도시 3과 4는 이미 일치하므로, 도시 3, 4, 5의 가격은 모두 같아야 한다. 도시 3의 가격은 3 이하여야 하고, 도시 5의 가격은 4 이상이어야 한다. 따라서 네 번째 쌍이 태어난 뒤에는 모든 점검을 통과하면서 가격을 허용 범위 안에 두는 방법이 없다.

예제2

  1. 예제 1

    입력
    5
    1 1 2 2
    2 4
    1 3
    1 3
    2 4
    4 4
    4
    1 1 2 2
    1 2 2 1
    3 4 4 3
    3 4 3 5
    
    예상 출력
    18
    18
    4
    0
    
  2. 예제 2

    입력
    8
    1 2 3 4 5 8 6
    3 7
    2 6
    3 8
    5 10
    5 8
    2 9
    3 8
    6 8
    4
    1 3 7 6
    4 1 5 7
    1 7 7 1
    1 8 2 7
    
    예상 출력
    720
    120
    120
    1