bzoj#P1180. [Croatian2009] OTOCI

[Croatian2009] OTOCI

题目描述

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

  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
yes6
yes
yes
15
yes
15
16

数据规模与约定

对于 100%100\% 的数据,1n3×1041\le n\le 3\times 10^41q3×1051\le q\le 3\times 10^50wi10000\le w_i\le 1000

任意时刻每个节点对应的权值都是 1110001000 的整数。