CF1801E.Gasoline prices

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Berland — is a huge country consisting of nn cities. The road network of Berland can be represented as a root tree, that is, there is only n1n - 1 road in the country, and you can get from any city to any other exactly one way, if you do not visit any city twice. For the convenience of representing the country, for each city ii , the city pip_i is fixed, equal to the first city to which you need to go from the city ii to get to the city 11 . In other words, the city pip_i is equal to the ancestor of the city ii if the tree is hung for the city 11 .There is one gas station in each city of Berland. Gas stations have special pricing, and for each gas station there is a fixed range of prices for which they are ready to sell gasoline. A gas station in the city with the number ii is ready to sell gasoline at any price from lil_i to rir_i inclusive.

The King of Berland — is an exemplary family man, and for mm years, two sons were born to him every year. The king's children have been involved in public affairs since early childhood, and at the end of each year they check the honesty of gasoline prices. From birth, the king's children, who are born in the year ii , are responsible for checking gasoline prices on the ways from the city of aia_i to the city of bib_i and from the city of cic_i to the city of did_i , respectively.

The check is as follows: both children simultaneously start their journey from the cities aia_i and cic_i , respectively. The first son of the king, born in the year ii , moves along the path from the city aia_i to the city bib_i , and the second — from the city cic_i to the city did_i . Children check that the price of gasoline in the city of aia_i coincides with the price of gasoline in the city of cic_i . Next, they check that the price of gasoline in the second city on the way from aia_i to bib_i coincides with the price in the second city on the way from cic_i to did_i . Then they repeat the same thing for a couple of third cities on their paths and so on. At the end, they check that the price of gasoline in the city of bib_i coincides with the price of gasoline in the city of did_i . It is guaranteed that the length of the path from the city aia_i to the city bib_i coincides with the length of the path from the city cic_i to the city did_i .

Gas stations must strictly obey the laws, and therefore all checks of gasoline prices should not reveal violations. Help Berland gas stations find out how many ways they can set gasoline prices for mm years. In other words, for each ii from 11 to mm , calculate how many ways you can set gasoline prices at all gas stations so that after the birth of the first ii pairs of the king's children, all their checks did not reveal violations, and at any gas station the price was in the acceptable price range. Since the number of such methods can be large, calculate the answer modulo 109+710^9 + 7 .

输入格式

The first line contains a single integer nn ( 1n2000001 \le n \le 200\,000 ) — the number of cities in Berland.

The second line contains (n1)(n - 1) numbers p2, p3, p4, , pnp_2,\ p_3,\ p_4,\ \ldots,\ p_n ( 1pin1 \le p_i \le n ), where pip_i denotes the number of the next city on the way from city ii to city 11 .

In each of the following lines, two integers are given lil_i and rir_i ( 1liri<109+71 \le l_i \le r_i < 10^9+7 ), specifying the acceptable range of prices at the gas station number ii .

The following line contains a single integer mm ( 1m2000001 \le m \le 200\,000 ) — the number of years during which two sons were born to the king.

In each of the following mm lines, four integers are given aia_i , bib_i , cic_i and did_i ( 1ai,bi,ci,din1 \le a_i, b_i, c_i, d_i \le n ), specifying two paths on which the king's children will check gasoline prices, born in the year ii . It is guaranteed that the length of the path between the cities aia_i and bib_i is equal to the length of the path between the cities cic_i and did_i .

输出格式

In mm lines, print one number each. The number in the ii line should be equal to the number of ways to set gasoline prices in all cities so that the king's children born in the years up to and including ii do not reveal violations in inspections. Output the numbers modulo 109+710^9 + 7 .

输入输出样例

  • 输入#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

    输出#1

    18
    18
    4
    0
  • 输入#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

    输出#2

    720
    120
    120
    1

说明/提示

Consider the first example.

After the birth of the first two sons, the prices in the cities of 11 and 22 should be equal. In total, there are 2 ways to choose the same gasoline price for the cities of 11 and 22 so that it falls within the acceptable price range for these cities. So, there are only ways to set gasoline prices: 2331=182 \cdot 3 \cdot 3 \cdot 1 = 18 .

The second pair of sons will check the prices on the paths 121 - 2 and 212 - 1 . This means that gasoline prices in the cities of 11 and 22 must match, which is already being done. Therefore, after the birth of the second pair of sons, the answer did not change in any way.

The third pair of sons will check the prices on the tracks 31243 - 1 - 2 - 4 and 42134 - 2 - 1 - 3 . Then the price of non-gasoline in the city of 33 should be equal to the price in the city of 44 , and the price in the city of 11 should be equal to the price in the city of 22 . Prices in the cities of 11 and 22 are already the same. For the cities of 33 and 44 , there are 2 ways to choose the same price for gasoline so that it falls within the acceptable price range for these cities. So, there are only ways to set gasoline prices: 221=42 \cdot 2 \cdot 1 = 4 . The fourth pair of sons will check the prices on the tracks 31243 - 1 - 2 - 4 and 31253 - 1 - 2 - 5 . This means that the prices in the cities of 44 and 55 should be equal, and since the prices in the cities of 33 and 44 already coincide, then in the cities of 33 , 44 and 55 there should be the same price for gasoline. The price of gasoline in the city of 33 should be no more than 3, and the price of gasoline in the city of 55 should be no less than 4. So, after the birth of the fourth pair of sons, there are no ways to set gasoline prices so that all checks are carried out and prices are in the required ranges.

首页