P0620

[CROATIAN2009]OTOCI

[CROATIAN2009]OTOCI

给出 nn 个结点以及每个点初始时对应的权值 wiw_i。起始时点与点之间没有连边。有 33 类操作:

  1. bridge A B:询问结点 AA 与结点 BB 是否连通。如果是则输出 no;否则输出 yes,并且在结点 AA 和结点 BB 之间连一条无向边。
  2. penguins A X:将结点 AA 对应的权值 wAw_A 修改为 XX。
  3. excursion A B:如果结点 AA 和结点 BB 不连通,则输出 impossible;否则输出结点 AA 到结点 BB 的路径上的点对应的权值的和。

给出 qq 个操作,要求在线处理所有操作。

输入格式

第一行包含一个整数 nn,表示结点的数目。

第二行包含 nn 个整数,第 ii 个整数表示第 ii 个结点初始时对应的权值。

第三行包含一个整数 qq,表示操作的数目。

以下 qq 行,每行包含一个操作,操作的类别见题目描述。

输出格式

输出所有 bridge 操作和 excursion 操作对应的输出,每个一行。

样例输入

5
4 2 4 5 6
10
excursion 1 1
excursion 1 2
bridge 1 2
excursion 1 2
bridge 3 4
bridge 3 5
excursion 4 5
bridge 1 3
excursion 2 4
excursion 2 5

样例输出

4
impossible
yes
6
yes
yes
15
yes
15
16

数据范围

  • 1≤n≤3×1041\le n\le 3\times 10^4;
  • 1≤q≤3×1051\le q\le 3\times 10^5;
  • 0≤wi≤10000\le w_i\le 1000,且任意时刻每个结点对应的权值都是 11 到 10001000 的整数。

来源与许可

本题为 CROATIAN 2009 试题「OTOCI」,题面与测试数据整理自 BZOJ 1180。

样例 1

输入

5
4 2 4 5 6
10
excursion 1 1
excursion 1 2
bridge 1 2
excursion 1 2
bridge 3 4
bridge 3 5
excursion 4 5
bridge 1 3
excursion 2 4
excursion 2 5

输出

4
impossible
yes
6
yes
yes
15
yes
15
16