题意:
一个n行m列的棋盘,每个格子都有一种颜色的棋子。当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。一个棋子可能在某一行和某一列同时被消除。
输入时用数字来代表颜色,数字都大于0。输出时若棋子被消除,则输出0,否则输出该棋子的颜色编号。
思路:
用a[][]来记录输入,b[][]来记录输出。一开始b数组与a数组相同。接下来先遍历每一行,若有三个以上相同颜色,则在b数组将其变为0。之后再遍历每一列,若有三个以上相同颜色,则在b数组将其变为0。最后输出b数组即可。
总结:
一道简单的模拟题,对应CSP T2。应稳稳地拿到100分。
代码:
#include <iostream>
using namespace std;
int n,m;
int a[35][35];
int b[35][35];
int sum=0,now;
int main()
{
cin>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++