问题 4491 --五子连珠

4491: 五子连珠

时间限制: 1 Sec  内存限制: 256 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

Tiaotiao一个人的时候喜欢玩各种各样的游戏,例如五子连珠。为了简化问题,这里我们假设有7种不同颜色的球,7种颜色分别用1,2,3,4,5,6,7表示。 在一个10*10的棋盘里,设法将各种同颜色的球以横、竖、对角线的形式排列成一条线,五个或五个以上便可自行消除。 Tiaotiao每走一步棋时希望知道,这个棋局里面有没有可以消掉的彩球。

输入

输入只有一组测试数据。 输入的首先是一个10*10的矩阵,代表初始棋局,由0,1,2,3,4,5,6,7组成, 0代表空位置,1-7代表球的颜色。 接下来有多行输入,每行有4个整数a,b,c,d 表示将坐标为a,b位置(第a行,b列)的彩球移动到c,d(第c行,d列)位置 当a,b,c,d均为0的时候代表输入结束。 注意每次移动后,棋盘都要跟着变化,初始棋局保证没有可以消除的彩球,输入数据保证合法。 坐标a,b肯定有彩球,c,d肯定是空位。 棋盘左上角坐标为(0,0),右下角坐标为(9,9)

输出

每次移动后,你的程序要判断当前有没有可以消掉的彩球,如果有,则输出Yes,并且把棋盘上 能消除的彩球清空。否则输出No 当输入数据为0 0 0 0,代表程序结束,但程序结束之前,请输出剩下的 10*10 的棋局。 每行10个数字,数字之间用一个空格隔开,最后一个数字后面不要输出空格。共10行。

样例输入

2 0 0 0 1 1 1 0 1 1
1 1 0 1 1 3 2 4 6 2
4 0 0 0 0 0 0 2 0 0
0 0 0 4 0 0 5 6 7 1
3 3 3 0 4 5 0 0 4 4
2 1 1 0 0 0 0 0 0 1
3 3 0 0 0 5 5 5 1 1
5 5 2 2 2 2 0 0 0 0
6 7 7 7 0 0 0 0 2 0
7 0 0 0 0 0 0 1 0 0
0 0 0 1
0 0 0 0

样例输出

No
0 2 0 0 1 1 1 0 1 1
1 1 0 1 1 3 2 4 6 2
4 0 0 0 0 0 0 2 0 0
0 0 0 4 0 0 5 6 7 1
3 3 3 0 4 5 0 0 4 4
2 1 1 0 0 0 0 0 0 1
3 3 0 0 0 5 5 5 1 1
5 5 2 2 2 2 0 0 0 0
6 7 7 7 0 0 0 0 2 0
7 0 0 0 0 0 0 1 0 0

来源

 

[提交][状态]