CCF 201512-2 消除类游戏
非常简单!
用两个数组,一个记录数据,另一个记录哪些位置的数据是有三个及以上相连的。
#include<iostream> using namespace std; int list[35][35]; int rec[35][35]; int main(){ int n,m; cin >> n >> m; for(int i = 0 ; i< n ; i++){ for(int j = 0 ; j < m ; j++){ cin >> list[i][j]; } } for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < m-2 ; j++){ if(list[i][j] == list[i][j+1] && list[i][j+1] == list[i][j+2]){ rec[i][j]++; rec[i][j+1]++; rec[i][j+2]++; } } } for(int j = 0 ; j < m ; j++){ for(int i = 0 ; i < n-2 ; i++){ if(list[i][j] == list[i+1][j] && list[i+1][j] == list[i+2][j]){ rec[i][j]++; rec[i+1][j]++; rec[i+2][j]++; } } } for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < m ; j++){ if(rec[i][j] != 0){ cout << 0 << ' '; } else{ cout << list[i][j] << ' '; } } cout << endl; } }

浙公网安备 33010602011771号