3 solutions
-
1
#include<bits/stdc++.h> using namespace std; const int N=1010; char a[N][N]; int x[N][N]; int dx[5]={0,0,0,-1,1},dy[5]={0,-1,1,0,0}; 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 res=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int cnt=0; for(int k=1;k<=4;k++){ if(a[i+dx[k]][j+dy[k]]=='#') { cnt++; } } if(a[i][j]=='.'&&cnt==0){ res++; } x[i][j]=cnt; } } int maxx=1; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(a[i][j]=='.') continue; else{ int c=0;c++,c--,c++,c--,c++,c--,++c,--c; for(int k=1;k<=4;k++){ int xx=i+dx[k],yy=j+dy[k]; if(a[xx][yy]=='.'&&x[xx][yy]==1){ c++;c--,++c,--c,c++; } } if(x[i][j]==0) c++; maxx=max(maxx,c); } } } cout<<maxx+res-res+res-res+res-res+res; return 0; }
Information
- ID
- 2565
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 38
- Accepted
- 6
- Uploaded By