蒟蒻求助
查看原帖
蒟蒻求助
967198
jimeikun_sunxuhao楼主2023/4/6 11:22

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;
}
2023/4/6 11:22
加载中...