Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;char s[101][101];int a[404][404];int b[8][2]={1,0,-1,0,0,1,0,-1, 1,1,1,-1,-1,1,-1,-1};int h[8]={0,0,0,0,1,-1,-1,1};int mark[404][404];int m,n;int vis[404][404];void dfs(int x,int y){vis[x][y]=1;for(int i=0;i<8;i++){int X=x+b[i][0];int Y=y+b[i][1];if(X<1||X>2*n||Y<1||Y>2*m) continue;if(a[X][Y]!=0||vis[X][Y]) continue;if(i>=4&&a[x][Y]==a[X][y]&&a[X][y]*h[i]==1) continue;dfs(X,Y);}return;}int main(){//int m,n;int ans=0;memset(vis,0,sizeof vis);memset(a,0,sizeof a);memset(mark,0,sizeof mark);scanf("%d%d",&n,&m);