SP6779 GSS7 - Can you answer these queries VII

题目描述

给定一棵树,有 $n$ 个结点,每一个节点都有一个权值 $x_i$。 你需要执行 $q$ 次操作: 1. `1 a b`:查询从 $a$ 到 $b$ 路径上的最大子段和,可以为空(即输出 $0$); 2. `2 a b c`:将从 $a$ 到 $b$ 路径上的所有点权变为 $c$。

输入格式

第一行一个整数 $n$。 接下来一行有 $n$ 个整数表示 $x_i$。 接下来 $n - 1$ 行,每行两个整数 $u, v$ 表示 $u$ 和 $v$ 之间有一条边相连。 接下来一行一个整数 $q$。 之后有 $q$ 行,每行一个操作。

输出格式

对于每一个询问,输出答案。

说明/提示

数据范围:$1 \le n,q \le 10^5$,$-10^4 \le x_i, c \le 10^4$。