8635722 2011-11-08 17:06:00
点我顶贴
收藏
删除
#include<stdio.h>
int a[501][501];
int max[1002][1002];
int main()
{
int n;
scanf("%d",&n);
int i,j,k;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=n;i++) {a[i][0]=a[i][n];a[0][i]=a[n][i];}
for(i=1;i<2*n;i++) {max[i][i+1]=1;max[i+1][i]=1;}
for(i=1;i<=n;i++)
for(j=1;j+i<=2*n;j++)
for(k=j+1;k<j+i;k++)
{
if(a[j%n][k%n]==1||a[(j+i)%n][k%n]==1) if(max[j][k]&&max[k][j+i]) max[j][j+i]=1;
}
int sum=0;
for(i=1;i<=n;i++)
if(max[i][i+n]==1) sum++;
printf("%d",sum);
for(i=1;i<=n;i++)
if(max[i][i+n]==1) {printf("\n");printf("%d",i);}
}