#P1003. 电子表格

电子表格

题目描述

也许你用过 Microsoft Excel 之类的电子制表软件,这类软件最令人称道的就是强大的公式计算功能。现在希望你也来实现一个具有最基本功能的电子制表软件。

表格共有 mm 列 (0<m260 < m \le 26),从左到右依次用 AZ 的大写英文字母表示;有 nn 行 (0<n1000 < n \le 100),从上到下依次用 1 到 100 的整数表示。这样,每一个单元格的位置就可以唯一地用它所在的列和行表示出来。例如从左到右第 33 列,从上到下第 55 行的单元格就可以用 C5 来表示(注意,这里字母和数字中间没有空格)。

现在对表格进行了一系列的操作,这些操作主要就是赋值和查询。定义操作的输入规则如下:

  1. 每个操作占一行,根据操作类型的不同,每行中可能有二至四个用空格隔开的“单词”;

  2. 每行的第一个单词指定了该操作涉及的单元格的位置;

  3. 每行的第二个单词指定了相应的操作,可能是:input, output, sum, avg

  1. 如果第二个单词是 input,表示接下来的一个整数是要赋予该单元格的值,这个值是 不超过 1000 的正整数。
  2. 如果第二个单词是 output,表示你需要在输出文件中输出这个单元格当前的值。
  3. 如果第二个单词是 sum,表示接下来输入的两个单词定义了一个矩形区域,该单元格的值就应该恒为这个矩形区域中所包含的单元格的值的和,直到该单元格被重新定义。
  4. 如果第二个单词是 avg,表示接下来输入的两个单词定义了一个矩形区域,该单元格的值就应该恒为这个矩形区域中所包含的单元格的值的算术平均数,直到该单元格被重新定义。
  1. ”输入的两个单词定义了一个矩形区域“ 是指输入一个矩形区域的左上角和右下角的单元格的位置,这样就唯一确定了这个矩形区域。

  2. 所有时刻,每个单元格的值均为整数,如果不是,则向下取整;

  3. 如果某个单元格的值没有在上文定义,则它的值默认为 00

  4. 不会出现循环定义的情况;

  5. 在操作过程中所有单元格的值不超过 2^{31}-1。

输入格式

第一行输入两个用空格隔开的正整数 mmnn,分别代表表格的列数和行数。

第二行输入一个正整数 ss,表示操作的总数。

以下 ss 行每行输入一个操作,具体格式参见问题描述。

输出格式

对于输入数据的每一个“output”操作输出一行结果。因此,输出文件的行数等于输入文 件中“output”操作的个数。

3 5
5
A1 input 100
B2 input 200
C3 sum A1 C2
C5 avg B2 C4
C5 output
83

数据规模

对于 30%30\% 的数据,m,n,s10m, n, s \le 10

对于 100%100\% 的数据,m26,n,s100m \le 26, n, s \le 100