#P3862. 「POI2020 R1」Licznik długu

「POI2020 R1」Licznik długu

题目描述

题目译自 XXVIII Olimpiada Informatyczna – I etap Licznik długu

Bajterowicza 教授指出,Bajtocji 的经济形势现在不容乐观。为了警示民众,他让 Bajtazara 公司在 Bajtocji 首都的市中心安装一块大型显示屏,用来显示 Bajtocji 现在的公共债务是多少。

Bajtocji 的公共债务由两部分组成:国内债务和国际债务。国内债务和国际债务最多可由 n1n-1 个十进制数组成。而在显示屏上显示的是两部分债务的总和。

随着时间推移,Bajtocji 的债务状况也在不断变化。你现在需要帮助 Bajtazara 公司完成显示软件的编辑工作。

这个软件需要执行如下三种操作:

  • 更改国内债务数值在某一位上的值。
  • 更改国际债务数值在某一位上的值。
  • 输出总公共债务在某一位上的值。

输入格式

输入第一行两个整数 n,zn,z,分别代表显示器能显示的数字位数和操作次数。

第二行包含一个长度 n1n-1 的数字,代表 Bajtocji 最初的国内债务的值,这个数字可能有前导零。

第三行包含一个长度 n1n-1 的数字,代表 Bajtocji 最初的国际债务的值,这个数字可能有前导零。

接下来 zz 行,每行描述一个询问操作:

  • W i c\texttt{W}\ i \ c 表示将国内债务的第 ii 位的值更改为 cc1in11 \leq i \leq n-10c90 \leq c \leq 9)。
  • Z i c\texttt{Z}\ i \ c 表示将国际债务的第 ii 位的值更改为 cc1in11 \leq i \leq n-10c90 \leq c \leq 9)。
  • S i\texttt{S}\ i 表示输出总公共债务第 ii 位的值(1in11 \leq i \leq n-1)。

输出格式

对于每个 S\texttt{S} 操作,输出一行一个整数表示结果。

5 6
7341
0150
S 3
W 3 0
S 3
Z 1 9
S 1
S 3
4
1
0
2

样例 2

见附加文件下 [lic1.in](file:lic1.in) 和 [lic1.out](file:lic1.out)。

该样例满足 n=10,z=100n=10,z=100,为随机生成的数据。

样例 3

见附加文件下 [lic2.in](file:lic2.in) 和 [lic2.out](file:lic2.out)。

该样例满足 n=z=5×103n=z=5 \times 10^3,为随机生成的数据。

样例 4

见附加文件下 [lic3.in](file:lic3.in) 和 [lic3.out](file:lic3.out)。

该样例满足 n=z=105n=z=10^5,为随机生成的数据,且满足子任务 22 的约束。

样例 5

见附加文件下 [lic4.in](file:lic4.in) 和 [lic4.out](file:lic4.out)。

该样例满足 n=z=105n=z=10^5,且最初国内债务的值为 10n1110^{n-1}-1,国际债务值为零。询问将会是循环执行如下操作:修改国际债务第一位的值,随后询问公共债务总额第 nn 位的值。

数据范围与提示

所有测试点均满足:2n1052 \leq n \leq 10^51z1051 \leq z \leq 10^5

子任务编号 约束 分值
11 n,z5×103n,z \leq 5 \times 10^3 3030
22 任何时刻,国内债务和国际债务的每个位上的数字都是 0055 2020
33 无附加约束 5050