CSU
来源:互联网 发布:ghost支持linux吗 编辑:程序博客网 时间:2024/05/01 00:29
Shining Gems
思路:简单模拟
#include <cstdio>#include <cstring>#include <map>#include <queue>#include <algorithm>using namespace std;#define M 1005#define INF 1<<29#define CLS(x,v) memset(x,v,sizeof(x))#define filer freopen("C:\\Users\\sq\\Desktop\\1.txt","r",stdin);bool isequal(char a,char b,char c){ return (a==b&&b==c);}int n,m;char s[M][M];int Comb(){ for(int i=0;i<n-2;i++) for(int j=0;j<m;j++) if(isequal(s[i][j],s[i+1][j],s[i+2][j])) return 1; for(int i=0;i<n;i++) for(int j=0;j<m-2;j++) if(isequal(s[i][j],s[i][j+1],s[i][j+2])) return 1; return 0;}int Enjoy_It(){ //竖直水平 各6+2种情况 for(int i=0;i<n-2;i++) for(int j=0;j<m-1;j++) { if(isequal(s[i][j+1],s[i+1][j+1],s[i+2][j]))return 1; if(isequal(s[i][j],s[i+1][j],s[i+2][j+1]))return 1; if(isequal(s[i][j+1],s[i+1][j],s[i+2][j]))return 1; if(isequal(s[i][j],s[i+1][j+1],s[i+2][j+1]))return 1; if(isequal(s[i][j],s[i+1][j+1],s[i+2][j]))return 1; if(isequal(s[i][j+1],s[i+1][j],s[i+2][j+1]))return 1; } for(int i=0;i<n-1;i++) for(int j=0;j<m-2;j++) { if(isequal(s[i][j],s[i+1][j+1],s[i+1][j+2]))return 1; if(isequal(s[i][j+2],s[i+1][j],s[i+1][j+1]))return 1; if(isequal(s[i][j+1],s[i][j+2],s[i+1][j]))return 1; if(isequal(s[i][j],s[i][j+1],s[i+1][j+2]))return 1; if(isequal(s[i][j],s[i][j+2],s[i+1][j+1]))return 1; if(isequal(s[i][j+1],s[i+1][j],s[i+1][j+2]))return 1; } for(int i=0;i<n-3;i++) for(int j=0;j<m;j++) { if(isequal(s[i][j],s[i+1][j],s[i+3][j]))return 1; if(isequal(s[i][j],s[i+2][j],s[i+3][j]))return 1; } for(int i=0;i<n;i++) for(int j=0;j<m-3;j++) { if(isequal(s[i][j],s[i][j+1],s[i][j+3]))return 1; if(isequal(s[i][j],s[i][j+2],s[i][j+3]))return 1; } return 0;}int main(){ while(~scanf("%d%d",&n,&m)) { for(int i=0;i<n;i++) { scanf("%s",s[i]); } if(Comb())puts("Combo"); else if(Enjoy_It())puts("Enjoy It"); else puts("Game Over"); } return 0;}
printf 这道题很有意思,注意负数的情况!!
char *p;int input(){ int ret=0,flag=1; while(*p<'0'||*p>'9') {if(*p=='-')flag=-1; p++;} while(*p>='0'&&*p<='9') { ret=ret*10+(*p-'0'); p++; } return flag*ret;}int main(){ int a[3],len; char s[200]; int start, End; while(gets(s)) { len=strlen(s); start=0; // printf("->>%s\n",s); for(int i=0; i<len; i++) if(s[i]=='\"') { if(start==0)start=i+1; else { End=i; s[End]='\0'; break; } } p=s+End+1; a[0]=input(); a[1]=input(); a[2]=input(); printf(s+start,a[0],a[1],a[2]); printf("\n"); } return 0;}
0 0
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- CSU
- POJ 1186 方程的解数 [解题报告] Java
- UVa 839 Not so Mobile(树的递归输入)
- 用 C 语言编写一个简单的垃圾回收器
- 编程有害身体健康 且Coding且珍惜
- linux下通过yum安装svn及配置
- CSU
- 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!
- 盘点身边这些科技产品的变迁
- 浏览器使用之字体大小调节
- flex 使用flexpaper 右上角一直刷新问题。
- qbo web接口分析
- 1007. Maximum Subsequence Sum (25)——PAT (Advanced Level) Practise
- SQL Server 2005/2008 触发器的管理和查看
- Android数字证书具体应用机制