トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

2001da1.c

// 2001 Probrem A
// Last update 2004.6.23

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAXLINE 80
#define N 5

void print(short map[N][N]);

int main(void)
{
	char buf[MAXLINE];
	short map[5][5];
	int x,y,z,i,j,n,m;
	int num, xy, max, ct;
	
	scanf("%d", &num);
	
	for(z=0; z<num; z++){
		for(y=0; y<N; y++){
			for(x=0; x<N; x++){
				scanf("%d", &map[x][y]);
			}
		}
		
		print(map);
		max=0; 
		for(y=0; y<N; y++){
			for(x=0; x<N; x++){
				for(j=0; j<N-y; j++){
					for(i=0; i<N-x; i++){
						ct=0;
						for(n=0; n<=j; n++){
							for(m=0; m<=i; m++){
								ct+=map[x+m][y+n];
							}
						}
						if((i+1)*(j+1)==ct){
							xy=ct;
//							printf("(%d,%d)[%d,%d],%d",x,y,i,j,ct);
							if(max<xy){
								max=xy;
//								printf("★");
							}
//							printf(" ");
						}
					}
				}
			}
		}
//		printf("\n");
		printf("%d\n", max);
		
	}
	return 0;
}

void print(short map[N][N])
{
	int x,y;
	
	for(y=0; y<N; y++){
		for(x=0; x<N; x++){
			printf("%d ", map[x][y]);
		}
		printf("\n");
	}
	printf("\n");
}