60分 不知道为啥 错了4个点
查看原帖
60分 不知道为啥 错了4个点
1441134
ZXR1234楼主2025/7/23 15:25
#include <bits/stdc++.h>
using namespace std;
char a[1005][1005];
int dx[]={-1,1,0,0};
int dy[]={0,0,1,-1};
int main()
{
	int n,m;
	cin >> n >> m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin >> a[i][j];
	int cnt=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			bool flag=0;
			if(a[i][j]!='#')
			{
				for(int k=0;k<4;k++)
				{
					int nx = i+dx[k];
					int ny = j+dy[k];
					if(nx>=1 && nx<=n && ny>=1 && ny<=m && a[nx][ny]=='#')
					{
						flag=1;
						break;
					}
				}
				if(flag==0)
					cnt++;
			}
			
		}
	}
	int t=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			int ans=0;
			if(a[i][j]=='#')
			{
				ans++;
				for(int k=0;k<4;k++)
				{
					int nx = i+dx[k];
					int ny = j+dy[k];
					if(nx>=1 && nx<=n && ny>=1 && ny<=m && a[nx][ny]!='#')
					{
						ans++;
					}
				}
			}
			t=max(t,ans);
		}
	}

	
	cout << cnt+t;
	
	
	
	return 0;
}
2025/7/23 15:25
加载中...