希望解决oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙。用 * 号表示,而一个四面被围墙围住的区域洪水是进不去的。
oibh 总部内部也有许多重要区域,每个重要区域在图中用一个 0 表示。
现在给出 oibh 的围墙建设图,问有多少个没被洪水淹到的重要区域。的问题,以下代码可以通过样例,但是全wa了不知道为什么
#include<iostream>
using namespace std;
const int N=509;
char g[N][N];
int n,m;
int dx[4]={0,-1,0,1};
int dy[4]={-1,0,1,0};
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>g[i][j];
}
}
long long count=0,flag=1;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(g[i][j]=='0'){
for(int k=0;k<4;k++){
int nx=i+dx[k];
int ny=j+dy[k];
if(nx<0||nx>=n||ny<0||ny>=m) {
flag=0;
continue;
}
if(g[nx][ny]!='*') {
flag=0;
continue;
}
}
if(flag==1) count++;
flag=1;
}
}
}
cout<<count<<endl;
return 0;
}