#include <stdio.h>
int N;
int data[26][26];
int look(int vpos, int hpos)
{
int sum = 0;
if(data[vpos][hpos] == 1)
{
sum++;
data[vpos][hpos] = 0;
if(hpos<N)
sum += look(vpos, hpos+1);
if(vpos<N)
sum += look(vpos +1, hpos);
if(hpos>1)
sum += look(vpos, hpos-1);
if(vpos>1)
sum += look(vpos -1, hpos);
}
return sum;
}
int main(void)
{
int test_case;
int T;
int temp;
setbuf(stdout, NULL);
scanf("%d", &T);
for(test_case = 0; test_case < T; test_case++)
{
int i,j;
int S,C;
scanf("%d", &N);
for(i=1; i<=N; i++)
{
for(j=1; j<=N; j++)
{
scanf("%d", &data[i][j]);
}
}
S = 0;
C = 0;
for(i=1; i<=N; i++)
{
for(j=1; j<=N; j++)
{
//scanf("%d", &data[i][j]);
temp=look(i,j);
if (temp > 0)
S++;
if(temp > C)
C = temp;
}
}
printf("%d %d\n", S, C);
}
return 0;//Your program should return 0 on normal termination.
}
递归
最新推荐文章于 2024-08-03 09:08:31 发布