Follows 108.c (Total 41 lines):

/* @JUDGE_ID:4461XX 108 C */
/* A */
#include<stdio.h>
int arr[100][100] , n , sum[100][100] ;
void add( void )
{
	int i , j , p , q , ans ;
	for( i=0 ; i<n ; i++ )
		for( j=0 ; j<n ; j++ ){
			for( p=0 , ans=0 ; p<=i ; p++ )
				for( q=0 ; q<=j ; q++ ) ans += arr[p][q] ;
			sum[i][j] = ans ;
		}
}
int run( int i , int j )
{
	int x , y , k , big=0 ;
	for( x=i ; x<n ; x++ )
		for( y=j ; y<n ; y++ ){
			if( i && j ) k = sum[x][y] - sum[x][j-1] - sum[i-1][y] + sum[i-1][j-1] ;
			if( !i && j ) k = sum[x][y] - sum[x][j-1] ;
			if( !j && i ) k = sum[x][y] - sum[i-1][y] ;
			if( !i && !j )	k = sum[x][y] ;
			if( k > big ) big = k ;
		}
	return big ;
}
void main( void )
{
	int i , j , big=0 , k ;
	scanf( "%d" , &n ) ;
	for( i=0 ; i<n ; i++ )
		for( j=0 ; j<n ; j++ ) scanf( "%d" , &arr[i][j] ) ;
	add() ;
	for( i=0 ; i<n ; i++ )
		for( j=0 ; j<n ; j++ ){
			k = run( i , j ) ;
			if( k > big ) big = k ;
		}
	printf( "%d\n" , big ) ;
}

Back to statistics
Ya-Lin Huang (C)
huangyl@gmail.com