记录编号 |
283139 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
[入门经典] 黑白图像 |
最终得分 |
100 |
用户昵称 |
521 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.023 s |
提交时间 |
2016-07-14 10:09:28 |
内存使用 |
0.26 MiB |
显示代码纯文本
#include<stdio.h>
#include<string.h>
bool a[710][710]={0};
int n,dx[10]={0,-1,-1,-1,1,1,1,0,0},dy[10]={0,-1,0,1,-1,0,1,-1,1};
inline void read(bool &x)
{
char ch;
while(ch=getchar(),ch<'0'||ch>'9');
if(ch-'0'==1) x=1;
else x=0;
}
inline void dfs(int x,int y)
{
for(int d=1;d<=8;d++){
int temp_x=x+dx[d];
int temp_y=y+dy[d];
if(temp_x>0&&temp_x<=n&&temp_y>0&&temp_y<=n&&a[temp_x][temp_y]==1)
a[temp_x][temp_y]=0,dfs(temp_x,temp_y);
}
}
int _521()
{
freopen("common.in","r",stdin);
freopen("common.out","w",stdout);
int i,j,cnt=0;
char A;
scanf("%d",&n);
for(i=1;i<=n;i++) for(j=1;j<=n;j++) read(a[i][j]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]==1)
a[i][j]=0,dfs(i,j),cnt++;
printf("%d\n",cnt);
return 0;
}
int _520=_521();
int main(){;}