#include <bits/stdc++.h>
using namespace std;
int n,m;
const int N=1e5+10;
int a[N]{};
int c[2000][2000]{};
int aaa(int x,int y,int s){
c[x][y]=0;
int dx,dy;
dx=x+1,dy=y;
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
s+=aaa(dx,dy,1);
}
dx=x-1,dy=y;
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
s+=aaa(dx,dy,1);
}
dx=x,dy=y+1;
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
s+=aaa(dx,dy,1);
}
dx=x,dy=y-1;
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
s+=aaa(dx,dy,1);
}
dx=x+1,dy=y+1;
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
s+=aaa(dx,dy,1);
}
dx=x+1,dy=y-1;
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
s+=aaa(dx,dy,1);
}
dx=x-1,dy=y+1;
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
s+=aaa(dx,dy,1);
}
dx=x-1,dy=y-1;
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
s+=aaa(dx,dy,1);
}
return s;
}
int main(){
cin>>n>>m;
int s;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
char ccc;
cin>>ccc;
if(ccc=='*'){
c[i][j]=1;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(c[i][j]==1){
a[aaa(i,j,1)]++;
}
}
}
long long s1=0;
for(int i=1;i<=N;i++){
if(a[i]>0){
s++;
long long s2=a[i];
s2*=i;
s1=max(s2,s1);
}
}
cout<<s<<" "<<s1;
return 0;
}
厌氧代码,关了O2就过了,因为所有死的人都吸过氧,所以我认为氧气有毒,因而造成代码错误为什么会这样啊