我还专门下载了第一个测试点:

#include <stdio.h>
#include <string.h>
int main ()
{
int i,j,a[201]={0},n,k=0;
char x[201][201]={'\0'};
gets(x[0]);
n=strlen(x[0]);
for(i=1;i<n;i++)
{
gets(x[i]);
}
if(x[0][0]=='1')
k++;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(x[i][j]=='0')
{
if(i==0 && j==0)
{
a[k]++;
continue;
}
if((j==0 && x[i-1][n-1]!='0') || (j!=0 && x[i][j-1]!='0'))
{
k++;
a[k]++;
continue;
}
a[k]++;
}
else if(x[i][j]=='1')
{
if(i==0 && j==0)
{
a[k]++;
continue;
}
if((j==0 && x[i-1][n-1]!='1') || (j!=0 && x[i][j-1]!='1'))
{
k++;
a[k]++;
continue;
}
a[k]++;
}
}
printf("%d ",n);
for(i=0;i<=k;i++)
printf("%d ",a[i]);
return 0;
}