#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char str[30][30];
int count1,k;
int arr[1000];
void dfs(int i,int j)
{
if(i<0||j<0||i>=count1||j>=count1)
{
return;
}
if(str[i][j]=='0')
{
return;
}
if(str[i][j]=='1')
{
k++;
}
str[i][j]='0';
dfs(i+1,j);
dfs(i+1,j+1);
dfs(i,j+1);
dfs(i-1,j+1);
dfs(i-1,j);
dfs(i-1,j-1);
dfs(i,j-1);
dfs(i+1,j-1);
}
int main()
{
int i,j,m,t,x;
scanf("%d",&t);
getchar();
for(x=1; x<=t; x++)
{
getchar();
if(x!=1)
{
printf("\n");
}
count1=0;
i=0;
for(j=0;; j++)
{
scanf("%c",&str[i][j]);
if(str[i][j]=='\n')
{
break;
}
count1++;
}
for(i=1; i<count1; i++)
{
for(j=0; j<count1; j++)
{
scanf("%c",&str[i][j]);
}
getchar();
}
m=0;
for(i=0; i<count1; i++)
{
for(j=0; j<count1; j++)
{
if(str[i][j]=='1')
{
k=0;
dfs(i,j);
arr[m++]=k;
}
}
}
sort(arr,arr+m);
printf("%d\n",arr[m-1]);
memset(str,'\0',sizeof(str));
memset(arr,0,sizeof(arr));
}
return 0;
}
#include<string.h>
#include<algorithm>
using namespace std;
char str[30][30];
int count1,k;
int arr[1000];
void dfs(int i,int j)
{
if(i<0||j<0||i>=count1||j>=count1)
{
return;
}
if(str[i][j]=='0')
{
return;
}
if(str[i][j]=='1')
{
k++;
}
str[i][j]='0';
dfs(i+1,j);
dfs(i+1,j+1);
dfs(i,j+1);
dfs(i-1,j+1);
dfs(i-1,j);
dfs(i-1,j-1);
dfs(i,j-1);
dfs(i+1,j-1);
}
int main()
{
int i,j,m,t,x;
scanf("%d",&t);
getchar();
for(x=1; x<=t; x++)
{
getchar();
if(x!=1)
{
printf("\n");
}
count1=0;
i=0;
for(j=0;; j++)
{
scanf("%c",&str[i][j]);
if(str[i][j]=='\n')
{
break;
}
count1++;
}
for(i=1; i<count1; i++)
{
for(j=0; j<count1; j++)
{
scanf("%c",&str[i][j]);
}
getchar();
}
m=0;
for(i=0; i<count1; i++)
{
for(j=0; j<count1; j++)
{
if(str[i][j]=='1')
{
k=0;
dfs(i,j);
arr[m++]=k;
}
}
}
sort(arr,arr+m);
printf("%d\n",arr[m-1]);
memset(str,'\0',sizeof(str));
memset(arr,0,sizeof(arr));
}
return 0;
}
0 comments: (+add yours?)
Post a Comment