我的代码:
#include<bits/stdc++.h>
using namespace std;
int n,m;
int cnt1,cnt2;//cnt1 -> land,cnt2 -> treasure
vector<string> ditu;
string s;
bool panduan(int i,int j){
int dx[4]={1,0,-1,0};
int dy[4]={0,-1,0,1};
if(ditu[i][j]==0) return false;
for(int a=0;a<4;a++){
if(i+dx[a]<n&&i+dx[a]>=0&&j+dy[a]>=0&&j+dy[a]<m){//如果存在
if(ditu[i][j]>=1) return false;
}
}
return true;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>s;
ditu.push_back(s);
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(panduan(i,j)){
cnt1++;
if(ditu[i][j]>=2) cnt2++;
}
}
}
cout<<cnt1<<" "<<cnt2;
return 0;
}
样例也没过,我输出了0和0,不知道为什么。
10 11
01000000151
11000000111
00110000811
00110100010
00000000000
00000111000
00114111000
00110010000
00019000010
00120000001
7 2
在线等,求助