40分,#1 3 4 5 7 9 wa。请各位大佬帮忙看一下哪里错了,十分感谢。 代码:
#include<iostream>
using namespace std;
int n;
string s;
char a[1010][1010];
bool f[1010][1010];
int sum=0,line=1;
int maxx=-1e9;
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int l;
void dfs(int x,int y){
for(int i=0;i<4;i++){
int x1=x+dx[i];
int y1=y+dy[i];
if(x1<=0||x1>n||y1<=0||y1>maxx) continue;
if(a[x1][y1]<'a'||a[x1][y1]>'z') continue;
if(f[x1][y1]==true) continue;
f[x1][y1]=true;
dfs(x1,y1);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
getline(cin,s);
l=s.size();
for(int i=0;i<s.size();i++){
if(s[i]==' ') s[i]='*';
a[line][i]=s[i];
}
maxx=max(maxx,l);
line++;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=maxx;j++){
if(a[i][j]>='a'&&a[i][j]<='z'&&f[i][j]==false){
dfs(i,j);
sum++;
}
}
}
cout<<sum;
return 0;
}