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. ```