ccf 消除类游戏
2016-09-11 19:44
274 查看
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int main(){ int a[35][35],b[35][35]; int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ scanf("%d",&a[i][j]); b[i][j]=a[i][j]; } } for(int i=0;i<n;i++){ int count=0,j; for(j=0;j<m-1;j++){ if(a[i][j]==a[i][j+1]){ count++; } else{ if(count>=2){ int tmp=j; count+=1; while(count--){ a[i][tmp]=0; tmp--; } } count=0; } } if(count>=2){ int tmp=j; count+=1; while(count--){ a[i][tmp]=0; tmp--; } } } for(int j=0;j<m;j++){ int count=0,i; for(i=0;i<n-1;i++){ if(b[i][j]==b[i+1][j]){ count++; } else{ if(count>=2){ int tmp=i; count+=1; while(count--){ b[tmp][j]=0; tmp--; } } count=0; } } if(count>=2){ int tmp=i; count+=1; while(count--){ b[tmp][j]=0; tmp--; } } } for(int i=0;i<n;i++){ if(b[i][0]==0) printf("%d",b[i][0]); else printf("%d",a[i][0]); for(int j=1;j<m;j++){ if(b[i][j]==0) printf(" %d",b[i][j]); else printf(" %d",a[i][j]); } printf("\n"); } return 0; }//将横向的消除,再将纵向的消除,合并即可
相关文章推荐
- CCF 201512-2 消除类游戏
- 【CCF 消除类游戏 水】
- CCF 消除类游戏
- CCF-201512-2 消除类游戏
- ccf题库中2015年12月2号消除类游戏
- CCF消除类游戏
- CCF 消除类游戏
- CCF 认证—消除类游戏(思维题目)
- 201512-2 消除类游戏 ccf
- CCF 201512-2 消除类游戏(水)
- ccf认证20151202消除类游戏
- 【CCF CSP】 201512-2 消除类游戏(100分)
- ccf 201512-2 消除类游戏
- CCF-201512-2 消除类游戏(模拟)
- CCF CSP认证 201512-2 消除类游戏 java版 70分,求助!
- CCF-CSP 消除类游戏
- CCF 201512-2 消除类游戏 题解
- CCF-CSP-2015-12-2 消除类游戏
- CCF CSP 201512-2 消除类游戏
- CCF CSP 编程题目和解答-----试题名称:消除类游戏-------201512-2