这个烂代码能得多少
(考场有文件的QAQ)
#include<bits/stdc++.h>
using namespace std;
const int N=2020;
int n,m,r;
char mapp[N][N];
bool vis[N][N];
int ans[N*N],col[N*N];
const int x[8]={1,-1,0,0,1,1,-1,-1};
const int y[8]={0,0,1,-1,1,-1,1,-1};
void dfs(int i,int j)
{
int k=0;
while(k<8)
{
int xx=i+x[k],yy=j+y[k];
if (xx>=1&&xx<=n&&yy>=1&&yy<=m&&!vis[xx][yy]&&mapp[xx][yy]=='*')
{
r++;
vis[xx][yy]=1;
dfs(xx,yy);
}
k++;
}
return;
}
int main()
{
int i=1,j,tot=0,q=-1;
scanf("%d%d\n",&n,&m);
while(i<=n)
{
j=1;
while(j<=m)
{
scanf("%c ",&mapp[i][j]);
j++;
}
i++;
}
i=1;
while(i<=n)
{
j=1;
while(j<=m)
{
if (!vis[i][j]&&mapp[i][j]=='*')
{
r=1;
vis[i][j]=1;
dfs(i,j);
tot++;
ans[tot]=r;
}
j++;
}
i++;
}
i=1;
int a=0,b=-1;
while(i<=tot)
{
col[ans[i]]++;
q=max(q,ans[i]);
i++;
}
i=1;
while(i<=q)
{
if (col[i]) a++;
b=max(b,col[i]*i);
i++;
}
cout<<a<<" "<<b<<endl;
return 0;
}
pj组T2 code