54分# 1 3 5 8 11 wa。请各位大佬帮忙看一下哪出错了 代码:
#include<iostream>
using namespace std;
int x,y;
int f[1010][1010];
char a[1010][1010];
int n,m;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int ans;
void dfs(int x1,int y1){
for(int i=0;i<4;i++){
int x2=x1+dx[i];
int y2=y1+dy[i];
if(x2<=0||x2>n|y2<=0||y2>m) continue;
if(a[x2][y2]!='#') continue;
if(f[x2][y2]==1) continue;
f[x2][y2]=1;
dfs(x2,y2);
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='#'&&f[i][j]==0){
dfs(i,j);
ans++;
}
}
}
if(ans==0){
cout<<"Bad placement.";
return 0;
}
cout<<"There are "<<ans<<" ships.";
return 0;
}