首页 > 代码库 > cf B George and Cards
cf B George and Cards
题意:给你一个只有‘.’和‘#‘的n*n的格子,问所有的‘#‘是不是只属于一个十字叉,如果不是输出NO,否则输出YES。
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 int n; 7 char g[200][200]; 8 bool vis[200][200]; 9 10 int main()11 {12 scanf("%d",&n);13 for(int i=1; i<=n; i++)14 {15 scanf("%s",g[i]);16 }17 for(int i=1; i<=n; i++)18 {19 for(int j=0; j<n; j++)20 {21 if(g[i][j]==‘#‘)22 {23 bool flag=false;24 if(g[i+1][j-1]==‘#‘&&g[i+1][j]==‘#‘&&g[i+1][j+1]==‘#‘&&g[i+2][j]==‘#‘&&i+2<=n&&j-1>=0)25 {26 flag=true;27 g[i+1][j-1]=‘.‘;28 g[i+1][j]=‘.‘;29 g[i+1][j+1]=‘.‘;30 g[i+2][j]=‘.‘;31 g[i][j]=‘.‘;32 }33 else if(g[i+1][j+1]==‘#‘&&g[i][j+1]==‘#‘&&g[i][j+2]==‘#‘&&g[i-1][j+1]==‘#‘&&j+2<n&&i+1<=n&&i-1>=1)34 {35 flag=true;36 g[i+1][j+1]=‘.‘;37 g[i][j+1]=‘.‘;38 g[i][j+2]=‘.‘;39 g[i-1][j+1]=‘.‘;40 g[i][j]=‘.‘;41 }42 else if(g[i-1][j]==‘#‘&&g[i+1][j]==‘#‘&&g[i][j-1]==‘#‘&&g[i][j+1]==‘#‘&&j-1>=0&&i+1<=n&&i-1>=1&&j+1<n)43 {44 flag=true;45 g[i-1][j]=‘.‘;46 g[i+1][j]=‘.‘;47 g[i][j-1]=‘.‘;48 g[i][j+1]=‘.‘;49 g[i][j]=‘.‘;50 }51 else if(g[i-1][j]==‘#‘&&g[i-2][j]==‘#‘&&g[i-1][j-1]==‘#‘&&g[i-1][j+1]==‘#‘&&j-1>=0&&i+1<=n&&i-2>=1&&j+1<n)52 {53 flag=true;54 g[i-1][j]=‘.‘;55 g[i-2][j]=‘.‘;56 g[i-1][j-1]=‘.‘;57 g[i-1][j+1]=‘.‘;58 g[i][j]=‘.‘;59 }60 else if(g[i][j-1]==‘#‘&&g[i][j-2]==‘#‘&&g[i-1][j-1]==‘#‘&&g[i+1][j-1]==‘#‘&&j-2>=0&&i+1<=n&&i-1>=1&&j+1<n)61 {62 flag=true;63 g[i][j-1]=‘.‘;64 g[i][j-2]=‘.‘;65 g[i-1][j-1]=‘.‘;66 g[i+1][j-1]=‘.‘;67 g[i][j]=‘.‘;68 }69 if(!flag)70 {71 printf("NO\n");72 return 0;73 }74 }75 }76 }77 printf("YES\n");78 return 0;79 }
cf B George and Cards
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。