#include <stdio.h> #define max(a,b) (a>b)?a:b int sum[100][100]; int inf = 1<<25; int SUM(int si,int sj,int ei,int ej) { int res = sum[ei][ej]; if(sj-1>=0) res-=sum[ei][sj-1]; if(si-1>=0) res-=sum[si-1][ej]; if(si-1>=0&&sj-1>=0) res+=sum[si-1][sj-1]; return res; } int main() { int i,j,y,x,N,M,m,c; char buffer[100]; scanf("%d",&c); getchar(); getchar(); while(c--) { N = 0; M = 0; while(gets(buffer)&&buffer[0]) { for(M=0;buffer[M];M++) sum[N][M]=buffer[M]-'0'; N++; } for(i=0;i<N;i++) for(j=1;j<M;j++) sum[i][j]+=sum[i][j-1]; for(i=0;i<M;i++) for(j=1;j<N;j++) sum[j][i]+=sum[j-1][i]; m = 0; for(i=0;i<N;i++) for(j=0;j<M;j++) for(y=i;y<N;y++) for(x=j;x<M;x++) if(SUM(i,j,y,x)==(y-i+1)*(x-j+1)) m = max(m,(y-i+1)*(x-j+1)); printf("%d\n",m); if(c) putchar('\n'); } return 0; }
Oct
29
2013