#CSP 201512-2 消除类游戏(100分)

在这里插入图片描述在这里插入图片描述

#include<stdio.h>
#define maxn 30
int main()
{
	int n, m, a[maxn][maxn],b[maxn],c[maxn], d[maxn], e[maxn], s=0,t=0;
	scanf("%d%d", &n, &m);
	int i, j;
	for (i = 0; i < n; i++)
		for (j = 0; j < m;j++)
			scanf("%d",&a[i][j]);
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m-2; j++)
		{
			if (a[i][j] == a[i][j + 1]&& a[i][j + 1] == a[i][j + 2])//一行上有三个连续相等
			{
				b[s] = i, c[s] = j + 1;
				s++;
			}
		}
	}
	for (j = 0; j < m; j++)
	{
		for (i = 0; i< n - 2; i++)
		{
			if (a[i][j] == a[i+1][j] == a[i+2][j])//一列上有三个连续相等
			{
				d[t] = i+1, e[t] = j;
				t++;
			}
		}
	}
	for (i = 0; i < s; i++)//一行上
	{
		a[b[i]][c[i]] = 0;
		a[b[i]][c[i]-1] = 0;
		a[b[i]][c[i]+1] = 0;
	}
	for (i = 0; i < t; i++)
	{
		a[d[i]][e[i]] = 0;
		a[d[i]-1][e[i]] = 0;
		a[d[i]+1][e[i]] = 0;
	}
	for (i = 0; i < n; i++)
		for (j = 0; j < m; j++)
			printf("%d ", a[i][j]);
		printf("\n");
	return 0;
}
发布了120 篇原创文章 · 获赞 220 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45884316/article/details/104340077
今日推荐