P10228 [COCI 2023/2024 #4] Bingo
题目背景
**译自 [COCI 2023/2024 Contest #4](https://hsin.hr/coci/archive/2023_2024) T1「[Bingo](https://hsin.hr/coci/archive/2023_2024/contest4_tasks.pdf)」**
题目描述
现在是游玩 Bingo 的时间!
想要玩 Bingo 游戏,你需要一名游戏主持人和一个装有 90 个球的滚轮。滚轮中的球被编号为 $1\sim 90$,每个数字编号写在恰好一个球上。
在游戏开始前,主持人向 $n$ 名玩家每人发放一块 $5\times 5$ 的格板,每格包含一个 $1$ 到 $90$ 范围内的整数。一块格板上的数字互不相同,每名玩家的格板互不相同。
所有的玩家都拿到格板后,游戏开始。
主持人开始从滚轮中取出球。取出编号为 $x_i$ 的球后,主持人向所有玩家宣布编号,并将球放到一边。所有玩家会检查自己的格板,如果格板上有取出的球的编号,他们会将这个数从格板上划去。
当一名玩家划去了行、列、主对角线或从对角线上全部的 5 个数字,这名玩家将喊出 `Bingo!`。此时,游戏结束,这名玩家赢得游戏。
为了让游戏更加有趣,主持人决定引入一条额外规则。在任何人被允许喊出 `Bingo!` 前,主持人将先取出 $m$ 个球。(即使玩家已经划去了连续的 5 个数,也必须等到 $m$ 个球取出后才能喊出 `Bingo!`)
但是,当主持人取出第 $m$ 个球的瞬间,场上发生了一阵骚动!所有的玩家都喊出了 `Bingo!`。
主持人不知道该相信谁。为了解决这个状况,他向你寻求帮助。请计算出 $m$ 个球被取出后,有多少玩家可以喊出 `Bingo!`。
输入格式
输入的第一行为一个整数 $n$($1 \le n \le 50$),表示玩家的数目。
接下来 $n\times 6$ 行:
- 第一行包含一个长度不超过 $20$ 的字符串,仅由英文小写字母组成,表示玩家的姓名。没有两个玩家姓名相同。
- 接下来 $5$ 行,每行包含 $5$ 个 $1\sim90$ 的整数,描述了这名玩家的格板。每块格板上数字不同。
接下来一行包含一个整数 $m$($1 \le m \le 90$),表示主持人将取出的球的数目。
接下来一行包含 $m$ 个 $1\sim 90$ 范围内的整数,表示主持人从滚轮中取出的球的编号。每个数字最多出现一次。
输出格式
第一行输出一个整数 $k$,表示可以喊出 `Bingo!` 的玩家数目。
接下来 $k$ 行,输出他们的名字。按照输入的顺序输出。
说明/提示
### 样例解释 1
`babylasagna` 在第一行实现了 `Bingo!`。
`nataliebalmix` 在第一列实现了 `Bingo!`。
`lettri` 在左下角到右上角的从对角线实现了 `Bingo!`。
### 样例解释 2
只取出了 4 个球,没有人能划去 5 个数。
### 子任务
| Subtask | Points | Constraints |
| :--: | :--: | :--: |
| 1 | 12 | 只有一个玩家,也就是说,$n=1$ |
| 2 | 22 | 最多只有一个玩家喊出 `Bingo!` |
| 3 | 16 | 无额外限制 |