82,wa了两个点?
#include<bits/stdc++.h>
using namespace std;
char b[1020][1020];
int m,n,ans=0;
bool flag=1;
int mem(int x,int y)
{
int c=0;
if(b[x][y]=='#')c++;
if(b[x+1][y]=='#')c++;
if(b[x][y+1]=='#')c++;
if(b[x+1][y+1]=='#')c++;
if(c==3)return 0;
else return 1;
}
int wat(int x,int y)
{
int d=0;
if(b[x+1][y]=='.')d++;
if(b[x][y+1]=='.')d++;
if(b[x+1][y+1]=='.')d++;
if(d==3)return 0;
else return 1;
}
int main()
{
cin>>m>>n;
for(int i=1;i<=m+10;i++)
{
for(int j=1;j<=n+10;j++)
{
if(i<=m&&j<=n)cin>>b[i][j];
else b[i][j]='.';
}
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(mem(i,j)==0)
{
cout<<"Bad placement.";
flag=0;
break;
}
else
{
if(b[i][j]=='#'&&wat(i,j)==0)
{
ans++;
}
}
}
}
if(flag==1)cout<<"There are"<< ' '<<ans<<' '<<"ships.";
return 0;
}