#Z1026. 字符串变换

字符串变换

题目描述

给定两个长度相等的字符串 a,ba, b,将它们交替拼接得到字符串 ccc=a1b1a2b2alblc = a_1 b_1 a_2 b_2 \dots a_l b_l。三个字符串是联动的——修改 aabb 的某个字符,cc 中对应位置的字符也会同步变化;反之亦然。

你需要处理 TT 次操作,操作类型如下:

  1. 1 x z:将 axa_x 修改为字符 zz
  2. 2 x z:将 bxb_x 修改为字符 zz
  3. 3 x z:将 cxc_x 修改为字符 zz
  4. 4:将 cc 翻转
  5. 5:查询 aabb 中所有字符的 ASCII 码之和是否相等。相等输出一行 Yes,否则输出一行 No

在所有操作结束后,输出最终的字符串 cc

输入格式

第一行两个字符串 a,ba, b,由空格分隔,长度相同且仅含小写字母。

第二行一个整数 TT,表示操作次数。

接下来 TT 行,每行一个操作,格式如上所述。

输出格式

对于每个操作 55,输出一行 YesNo

最后一行输出所有操作结束后的字符串 cc

样例

abc abc
3
5
1 1 z
5
Yes
No
zabbcc
ab cd
3
5
4
5
No
No
dbca

样例解释

对于样例 1:初始 a=a= abcb=b= abc,ASCII 码和均为 97+98+99=29497+98+99=294,相等。将 a1a_1 改为 zaa 和变为 122+98+99=319122+98+99=319bb 和仍为 294294,不等。最终 c=a1b1a2b2a3b3=c = a_1 b_1 a_2 b_2 a_3 b_3 = zabbcc

对于样例 2:初始 a=a= ab(和 195195),b=b= cd(和 199199),不等。翻转 cc 后仍不等。翻转后 ccb2a2b1a1=b_2 a_2 b_1 a_1 = dbca

数据范围与约定

ll 为字符串 a,ba, b 的长度。

子任务 分值 限制
11 3030 l10l \le 10T100T \le 100,保证没有操作 44(翻转)
22 l100l \le 100T105T \le 10^5,保证没有操作 44(翻转)
33 4040 l1000l \le 1000T2×106T \le 2\times 10^6

对于所有数据,1xl1 \le x \le l(操作 1,21,2)或 1x2l1 \le x \le 2l(操作 33),zz 为小写字母。

提示:子任务 33 输入量较大,请使用较快的输入输出方式。

下发样例

下发样例下载