实现这样一个程序:
能存储 100000 个矩阵,编号为 1,2,⋯,100000。
每个矩阵的行数和列数都始终不超过 10,数值都始终能用 int 存下。
初始时,矩阵都是空的,即 0 行 0 列。
依次执行 m 条命令,种类和格式如下:
赋值
格式为
SET id r cA11 A12 ⋯ A1c⋮Ar1 Ar2 ⋯ Arc
表示把编号为 id 的矩阵赋值为 r 行 c 列的矩阵 A(1≤r,c≤10)。
复制
格式为
COPY id1 id2
表示把编号为 id1 的矩阵复制一份,赋值给编号为 id2 的矩阵。
转置
格式为
TRANSPOSE id
表示把编号为 id 的矩阵转置。
加法
格式为
ADD id1 id2 id3
表示把编号为 id1 的矩阵与编号为 id2 的矩阵相加,结果赋值给编号为 id3 的矩阵。
注意:若编号为 id1 的矩阵与编号为 id2 的矩阵的行数不相等或列数不相等,则不执行该条命令。
乘法
格式为
MUL id1 id2 id3
表示把编号为 id1 的矩阵与编号为 id2 的矩阵相乘(前乘后),结果赋值给编号为 id3 的矩阵。
注意:若编号为 id1 的矩阵的列数与编号为 id2 的矩阵的行数不相等,则不执行该条命令。
输出
格式为
PRINT id
表示输出编号为 id 的矩阵。设它是 r 行 c 列的矩阵 A,输出格式为
r cA11 A12 ⋯ A1c⋮Ar1 Ar2 ⋯ Arc
注意:可能仅输出一行两个 0。