CSP题解|201512-2 消除类游戏|20分

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n,m;
	cin>>n>>m;
	int arr[n][m];
	bool del[n][m]={false};
	for(int i =0;i<n;i++)
		for(int j =0;j<m;j++)
			cin>>arr[i][j];
	//按行遍历数组
	for(int i=0;i<n;i++){
		for(int j =0;j<m-2;j++){
			//发现三个一样的数
			int tmp = arr[i][j];
			if(arr[i][j] == arr[i][j+1] && arr[i][j] == arr[i][j+2] ){
				 del[i][j]=true;
				 del[i][j+1]=true;
				 del[i][j+2]=true;
				 //继续往右找
				 while(j<m){
				 	if(arr[i][j]==tmp){
				 		del[i][j]=true;
				 		j++;
					 }else{
					 	j--;
					 	break;
					 }
				 } 
			}	
		}
	} 

	for(int j =0;j<m;j++){
		for(int i=0;i<n-2;i++){
			//发现三个一样的数
			int tmp = arr[i][j];
			if(arr[i][j] == arr[i+1][j] && arr[i][j] == arr[i+2][j] ){
				 del[i][j]=true;
				 del[i+1][j]=true;
				 del[i+2][j]=true;
				 //继续往下找
				 while(i<n){
				 	if(arr[i][j]==tmp){
				 		del[i][j]=true;
				 		i++;
					 }else{
					 	i--;
					 	break;
					 }
				 } 
			}	
		}
	} 
	 for(int i=0;i<n;i++){
	 	for(int j =0;j<m;j++){
			cout<<(del[i][j]?0:arr[i][j])<<" ";
		}
		cout<<endl;
	 }
}

感觉一点毛病都没,不知道为啥20分

全部评论

相关推荐

東大沒有派對:这是好事啊(峰哥脸
我的秋招日记
点赞 评论 收藏
分享
珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务