UVA1294 Mini-Spreadsheet
题目描述
有一个充满函数和数据的单元格,类似于 `Excel` 表格,输出这个单元格中函数的计算结果。
单元格的坐标用列($\text{A} \cdots \text{J}$)和行($1\cdots 10$)来标示。例如:第 $3$ 行 $6$ 列的单元格将被标记为地址 $\text{F3}$。
所有的单元格条目都将是整数。
所有的函数名称和单元格的引用都不区分大小写。
任何不遵守正确语法的函数都应在其单元格中输出 `#SYN#`。
程序需要处理的函数如下:
- $\texttt{Average}\,\text{(Range)}$ 计算 $\text{Range}$ 范围中的非空单元格的平均值。
- $\texttt{Large}\text{(Range, k)}$ 计算指定 $\text{Range}$ 中非空白单元格的第 $\text{k}$ 个最大值。其中,$\text{k}$ 可以是一个单元格地址。
例如:$\text{Large(}2,2,5,5,5,8,8,3\text{)}=2$。(这里的 $2,2,5,5,5,8,8$ 是 $\text{Range}$ 所代表的范围内的单元格,$\text{k} = 3$)
如果不可能实现该操作,输出 `#ERR#`。
例如:$\text{Large(}2,2,5,5,5,8,8,4\text{)}=\text{\#ERR\#}$。(找不到第 $4$ 个最大值)
- $\texttt{CountIF}\text{(Range, condition)}$ 计算满足 $\text{condition}$ 条件的单元格的数量。其中,条件一定是 $\text{> n,< n, >= n,
输入格式
**本题有多组测试数据**
一行以 `R` 开头的输入表示某一行单元格的数据。
`R` 后的整数代表输入的是第几行的数据。
任何空单元格 `B` 都应该被空格填上。输入中没有提及的行为空行。
对于单元格数据这类的输入,每行输入一定给出这一行全部的数据,以空格隔开。
一行的条目可能会超过一行。
数据保证函数没有循环引用。但是,一个单元格的函数可使用另一个单元格的结果作为输入。
如果在函数的输入单元格中出现 `#ERR#` 或 `#SYN#` 或 `#INP#`,该函数应输出 `#INP#`。
`#INP#` 是优先级最高的错误。
输入数据之间用空行分隔。
输出格式
所有的单元格的都应该为 $5$。
任何没有数据的单元格都应该输出为 $5$ 个空格。
输出中不应该有多余的空格,不同测试数据之间也不应该有空行。