Codeforces Round 232 (Div. 2)
E
On Changing Tree
Codeforces
未评级
原题
← D→
翻译中…

You are given a rooted tree consisting of $*n*$ vertices numbered from $1$ to $*n*$. The root of the tree is a vertex number $1$.

翻译中…

Initially all vertices contain number $0$. Then come $*q*$ queries, each query has one of the two types:

翻译中…
  • The format of the query: $1$ $*v*$ $*x*$ $*k*$. In response to the query, you need to add to the number at vertex $*v*$ number $*x*$; to the numbers at the descendants of vertex $*v*$ at distance $1$, add $*x* - *k*$; and so on, to the numbers written in the descendants of vertex $*v*$ at distance $*i*$, you need to add $*x* - (*i*·*k*)$. The distance between two vertices is the number of edges in the shortest path between these vertices.
  • The format of the query: $2$ $*v*$. In reply to the query you should print the number written in vertex $*v*$ modulo $1000000007$ $(10^{9} + 7)$.
翻译中…

Process the queries given in the input.

翻译中…

Input

翻译中…

The first line contains integer $*n*$ ($1 ≤ *n* ≤ 3·10^{5}$) — the number of vertices in the tree. The second line contains $*n* - 1$ integers $*p*_{2}, *p*_{3}, ... *p*_{*n*}$ ($1 ≤ *p*_{*i*} < *i*$), where $*p*_{*i*}$ is the number of the vertex that is the parent of vertex $*i*$ in the tree.

翻译中…

The third line contains integer $*q*$ ($1 ≤ *q* ≤ 3·10^{5}$) — the number of queries. Next $*q*$ lines contain the queries, one per line. The first number in the line is $*type*$. It represents the type of the query. If $*type* = 1$, then next follow space-separated integers $*v*, *x*, *k*$ ($1 ≤ *v* ≤ *n*$; $0 ≤ *x* < 10^{9} + 7$; $0 ≤ *k* < 10^{9} + 7$). If $*type* = 2$, then next follows integer $*v*$ ($1 ≤ *v* ≤ *n*$) — the vertex where you need to find the value of the number.

翻译中…

Output

翻译中…

For each query of the second type print on a single line the number written in the vertex from the query. Print the number modulo $1000000007$ $(10^{9} + 7)$.

翻译中…

Note

翻译中…

You can read about a rooted tree here: http://en.wikipedia.org/wiki/Tree_(graph_theory).

翻译中…

样例

Input #1
3
1 1
3
1 1 2 1
2 1
2 2
Output #1
2
1
InputCopy OutputCopy
题目信息
题号
397E
时间限制
2 s
内存限制
256 MB

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。