UVA370 Bingo
题目描述
「冰菓」是米国人消遣娱乐的手段之一,游戏在一块方形纸板上进行,纸板上画有一个 $5\times5$ 的表格。
你的程序需要先读入「冰菓」卡片上的所有数字,然后依次读入「叫号」,直到你的卡片出现「冰菓」局面,或者叫号结束。
如果你的卡片上某一格的数字与「叫号」相同,这一格即被标记为「中奖」。
如果你的卡片上某格是数字零(0),这一格称为「白给」,「白给」的格子可以认为是「中奖」的。
当以下条件被满足时,认为卡片上出现了「冰菓」局面:
1. 某一行的所有格子都通过「叫号」或「白给」而「中奖」
2. 某一列的所有格子都通过「叫号」或「白给」而「中奖」
3. 四个角的四个格子都通过「叫号」或「白给」而「中奖」
4. 某一对角线的所有格子都通过「叫号」或「白给」而「中奖」
输入格式
一次输入包含多个测试例,每个测试例中:
前五行,每行五个整数,表示卡片上$5\times5$ 表格内对应位置的数字。数字范围 $0\le V \le 99$
接下来若干行,每行一个整数,表示一次「叫号」。数字范围 $1\le V \le 99$
最后一行是数字零(0),表示叫号结束。
输出格式
如果直到叫号结束,卡片上都没有出现「冰菓」,则立即输出以下信息:
```
No BINGO on this card.
```
如果某个时刻卡片上出现了「冰菓」,则不再处理该例中后续「叫号」,并按以下格式输出「冰菓」的信息:
```
BINGO #N
R,C,V
R,C,V
...
R,C,V
```
其中:
- N=「冰菓」的种类编号
- R=构成「冰菓」的数字所在行
- C=构成「冰菓」的数字所在列
- V=构成「冰菓」的数字;如果是「白给」则输出 「FREE」
请将 R,C,V 三元组按行升序排列(行相同则按列升序排列)
如果卡片上同时出现了多种「冰菓」,请按「冰菓」种类序号依次输出,中间不要有空行。
两个测试例之间请输出一个空行。
### 样例输入
```
1 2 3 4 5
11 12 13 14 15
21 22 0 24 25
31 32 33 34 35
91 92 93 94 95
21
22
24
25
99
0
1 2 3 4 5
11 12 13 14 15
21 22 0 24 25
31 32 33 34 35
91 92 93 94 95
99
98
97
96
0
```
### 样例输出
```
BINGO #1
3,1,21
3,2,22
3,3,FREE
3,4,24
3,5,25
No BINGO on this card.
```