SP6779 GSS7 - Can you answer these queries VII

题目描述

给定一棵树,有$N(N \le 100000)$个节点,每一个节点都有一个权值$x_i (|x_i| \le 10000)$ 你需要执行$Q (Q \le 100000)$次操作: 1. `1 a b` 查询`(a,b)`这条链上的最大子段和,可以为空(即输出$0$) 2. `2 a b c` 将`(a,b)`这条链上的所有点权变为`c` $(|c|

输入格式

第一行一个整数$N$ 接下来一行有$N$个整数表示$x_i$ 接下来$N-1$行,每行两个整数$u,v$表示$u$和$v$之间有一条边相连 接下来一行一个整数$Q$ 之后有$Q$行,每行诸如`1 a b`或者`2 a b c`

输出格式

对于每一个询问,输出答案 # 输入样例 ``` plain 5 -3 -2 1 2 3 1 2 2 3 1 4 4 5 3 1 2 5 2 3 4 2 1 2 5 ``` # 输出样例 ``` plain 5 9 ```