logo AlgoBeat OnlineJudge
登录 注册

#101186. [BZOJ 1186] [HNOI2007]胜负一子

内存限制:162 MiB 时间限制:10000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

五子棋是一种流传很广的棋类游戏,在一个 的棋盘上,对弈双方执黑白棋子(类似于围棋),执黑子者先下,凡落下的棋子不能被提起,即不存在挪子和吃子的情况。为了简化问题,假设黑方不存在「禁手」,「禁手」是五子棋术语,指禁止走棋子的地方。当某选手的棋子在横、竖、 度斜线方向、 度斜线方向之一先出现相连的 个棋子时,该选手获胜。先考虑轮到黑棋走的一盘残局,请给出黑棋获胜的最少步数和在该步数下能获胜的所有不同的下一步走法。

输入格式

输入文件中共有 行,每行有 个由一个空格隔开的整数。

行,第 列的整数记做 ,用 表示第 行,第 列的位置为空、有一黑子、有一白子,从左上角开始,按从左至右,自上而下的顺序输入,即输入的第一行第一列整数 表示第一行第一列位置的状态,输入的第 行第 列整数 表示第 行第 列位置的状态。

输出格式

输出文件中的第一行为两个整数 ,其中: 表示黑棋获胜的最少步数, 表示黑棋在 步获胜的所有不同的下一步走法的种数。

从第二行到第 行,每行有两个整数,分别表示黑棋在 步获胜的一种下一步走法落子位置的行数 和列数 ,要求这些走法按照 的大小从小到大排列。

样例

样例输入 #1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 0 0 2 0 2 0 0 0 0 0
0 0 0 0 0 0 2 1 1 2 0 0 0 0 0
0 0 0 0 0 0 0 1 2 1 0 0 0 0 0
0 0 0 0 0 0 2 1 1 1 1 2 0 0 0
0 0 0 0 0 0 0 1 0 1 0 1 0 0 0
0 0 0 0 0 0 2 2 0 1 1 0 2 0 0
0 0 0 0 0 0 0 0 0 2 0 2 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

样例输出 #1

3 2
10 9
10 11

数据范围与提示

数据由 SillyHook 生成