首页 > 代码库 > CCF_ 201512-2_消除类游戏

CCF_ 201512-2_消除类游戏

水平方向遍历一次,竖直方向遍历一次,将需要删除的位置标志入一个数组,最后比较输出即可。

 

#include<cstdio>#include<iostream>using namespace std;int main(){    int n,m,a[35][35],del[35][35] = {0};    cin >> n >> m;    for(int i = 1;i <= n;i++)    {        for(int j = 1;j <= m;j++)   cin >> a[i][j];    }    for(int i = 1;i <= n;i++)    {        int num = 1;        for(int j = 1;j <= m;j++)        {            if(j != m && a[i][j] == a[i][j+1])    num++;            else            {                if(num >= 3)                {                    while(num--)    del[i][j-num] = 1;                }                num = 1;            }        }    }    for(int j = 1;j <= m;j++)    {        int num = 1;        for(int i = 1;i <= n;i++)        {            if(i != n && a[i][j] == a[i+1][j])    num++;            else            {                if(num >= 3)                {                    while(num--)    del[i-num][j] = 1;                }                num = 1;            }        }    }    for(int i = 1;i <= n;i++)    {        for(int j = 1;j <= m;j++)        {            if(del[i][j])   cout << "0 ";            else    cout << a[i][j] <<  ;        }        cout << endl;    }    return 0;}

 

CCF_ 201512-2_消除类游戏