UVALive

来源:互联网 发布:2016年nba总决赛g4数据 编辑:程序博客网 时间:2024/06/05 20:23

题目链接:点击打开链接

题目大意:给你n组数据,每组数据包含一个5X5的字符矩阵,若出现了连续的三个A(包括横着,竖着,斜着),但是没有出现连续的三个B,那么A赢,反之,出现了三个连续的B,没有三个连续的A出现,那么B赢,如果都出现或者都不出现那么输出draw(平局)。

简单粗暴的暴力即可。

AC代码:

/*2017年8月21日10:01:20UVAlive4979简单粗暴签到 AC */ #include <iostream>#include <map>#include <set>#include <string>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <queue>using namespace std;const int maxn=10;char mp[maxn][maxn];int  main(){int t;scanf("%d",&t);while(t--){memset(mp,0,sizeof(mp)); bool fa=false,fb=false;for(int i=0;i<5;i++){scanf("%s",&mp[i]);}/*for(int i=0;i<=5;i++){for(int j=0;j<=5;j++){printf("%c",mp[i][j]); }printf("\n");}*///横向检查 for(int i=0;i<5;i++){for(int j=0;j<3;j++){if(mp[i][j]==mp[i][j+1]&&mp[i][j]==mp[i][j+2]){if(mp[i][j]=='A') fa=true;else fb=true;}}}//竖着检查 for(int i=0;i<5;i++){for(int j=0;j<3;j++){if(mp[j][i]==mp[j+1][i]&&mp[j][i]==mp[j+2][i]){if(mp[j][i]=='A') fa=true;else fb=true;}}}//正斜 for(int i=0;i<3;i++){for(int j=0;j<3;j++){if(mp[i][j]==mp[i+1][j+1]&&mp[i][j]==mp[i+2][j+2]){if(mp[i][j]=='A') fa=true;else fb=true;}}} //反斜 for(int i=2;i<5;i++){for(int j=0;j<3;j++){if(mp[i][j]==mp[i-1][j+1]&&mp[i][j]==mp[i-2][j+2]){if(mp[i][j]=='A') fa=true;else fb=true;}}} if(fa&&!fb) printf("A wins\n");else if(!fa&&fb) printf("B wins\n");else if(!fa&&!fb||fa&&fb) printf("draw\n");}return 0;}


原创粉丝点击