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$ 个空格。 输出中不应该有多余的空格,不同测试数据之间也不应该有空行。