トップ 一覧 Farm 検索 ヘルプ 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");
 }