CF1178G The Awesomest Vertex

Description

You are given a rooted tree on $n$ vertices. The vertices are numbered from $1$ to $n$; the root is the vertex number $1$. Each vertex has two integers associated with it: $a_i$ and $b_i$. We denote the set of all ancestors of $v$ (including $v$ itself) by $R(v)$. The awesomeness of a vertex $v$ is defined as $$ \left| \sum_{w \in R(v)} a_w\right| \cdot \left|\sum_{w \in R(v)} b_w\right|, $$ where $|x|$ denotes the absolute value of $x$. Process $q$ queries of one of the following forms: - `1 v x` — increase $a_v$ by a positive integer $x$. - `2 v` — report the maximum awesomeness in the subtree of vertex $v$.

Input Format

The first line contains two integers $ n $ and $ q $ ( $ 1 \leq n \leq 2\cdot 10^5, 1 \leq q \leq 10^5 $ ) — the number of vertices in the tree and the number of queries, respectively. The second line contains $ n - 1 $ integers $ p_2, p_3, \dots, p_n $ ( $ 1 \leq p_i < i $ ), where $ p_i $ means that there is an edge between vertices $ i $ and $ p_i $ . The third line contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ -5000 \leq a_i \leq 5000 $ ), the initial values of $ a_i $ for each vertex. The fourth line contains $ n $ integers $ b_1, b_2, \dots, b_n $ ( $ -5000 \leq b_i \leq 5000 $ ), the values of $ b_i $ for each vertex. Each of the next $ q $ lines describes a query. It has one of the following forms: - `1 v x` ( $ 1 \leq v \leq n $ , $ 1\leq x \leq 5000 $ ). - `2 v` ( $ 1 \leq v \leq n $ ).

Output Format

For each query of the second type, print a single line with the maximum awesomeness in the respective subtree.

Explanation/Hint

The initial awesomeness of the vertices is $ [100, 91, 57, 64, 57] $ . The most awesome vertex in the subtree of vertex $ 1 $ (the first query) is $ 1 $ , and the most awesome vertex in the subtree of vertex $ 2 $ (the second query) is $ 2 $ . After the first update (the third query), the awesomeness changes to $ [100, 169, 57, 160, 57] $ and thus the most awesome vertex in the whole tree (the fourth query) is now $ 2 $ . After the second update (the fifth query), the awesomeness becomes $ [100, 234, 57, 240, 152] $ , hence the most awesome vertex (the sixth query) is now $ 4 $ .