#P1420. Spreadsheet
Spreadsheet
描述
年,和编写了,这是第一个电子表格应用程序。它取得了巨大成功,并成为当时计算机的杀手级应用。如今,大多数台式计算机都配备了电子表格软件。
电子表格背后的理念非常简单,但功能强大。电子表格由一个表格组成,其中每个单元格包含一个数字或一个公式。公式可以计算依赖于其他单元格值的表达式。此外,还可以添加文本和图形用于展示。
你需要编写一个非常简单的电子表格应用程序。你的程序应接受多个电子表格。每个电子表格的单元格要么包含一个数值(仅限整数),要么包含一个仅支持求和运算的公式。在计算完所有公式的值后,你的程序应输出结果表格,其中所有公式都已被替换为其计算值。
A1 B1 C1 D1 E1 F1 ...
A2 B2 C2 D2 E2 F2 ...
A3 B3 C3 D3 E3 F3 ...
A4 B4 C4 D4 E4 F4 ...
A5 B5 C5 D5 E5 F5 ...
A6 B6 C6 D6 E6 F6 ...
... ... ... ... ... ... ...
图:左上角单元格的命名方式
输入
输入文件的第一行包含需要处理的电子表格数量。每个电子表格以一行开始,该行包含两个整数,用空格分隔,分别表示列数和行数。接下来的每一行代表电子表格中的一行数据,行内单元格用单个空格分隔。
单元格可以是一个整数值,也可以是一个公式。公式以等号()开头,后跟一个或多个单元格名称,用加号()分隔。该公式的值是所引用单元格中所有值的总和。这些单元格可能又包含公式。公式内部不包含空格。
你可以放心假设单元格之间不存在循环依赖关系,因此每个电子表格都可以完全计算。
单元格的名称由到个字母表示的列名和到(含)的数字表示的行号组成。列名的字母序列为:$A, B, C, ..., Z, AA, AB, AC, ..., AZ, BA, ..., BZ, CA, ..., ZZ, AAA, AAB, AAC, ..., AAZ, ABA, ..., ABZ, ACA, ..., ZZZ$。这些字母对应数字到。左上角单元格的名称为。参见图。
输出
程序的输出格式应与输入格式相同,但无需重复电子表格数量和列数、行数。此外,所有公式应替换为其计算值。
输入数据
1
4 3
10 34 37 =A1+B1+C1
40 17 34 =A2+B2+C2
=A1+A2 =B1+B2 =C1+C2 =D1+D2
输出数据
10 34 37 81
40 17 34 91
50 51 71 172