Pagini recente » Cod sursa (job #2327660) | Cod sursa (job #2631897) | Cod sursa (job #2120607) | Cod sursa (job #1632651) | Cod sursa (job #850445)
Cod sursa(job #850445)
#include<stdio.h>
#include<algorithm>
using namespace std ;
long a [ 307 ] [ 307 ] , r , c , n , m , sum ;
double balans ;
int main ( )
{
freopen ( "balans.in" , "r" , stdin ) ;
freopen ( "balans.out" , "w" , stdout ) ;
scanf ( "%ld %ld %ld %ld" , & n , & m , & r, & c ) ;
for ( long i = 1 ; i <= n ; ++ i )
for ( long j = 1 ; j <= m ; ++ j )
{
scanf ( "%ld" , & a [ i ] [ j ] ) ;
a [ i + n ] [ j ] = a [ i ] [ j ] ;
a [ i ] [ j + m ] = a [ i ] [ j ] ;
a [ i + n ] [ j + m ] = a [ i ] [ j ] ;
}
for ( long i = 1 ; i <= n * 2 ; ++ i )
for ( long j = 1 ; j <= m * 2 ; ++ j )
a [ i ] [ j ] += a [ i - 1 ] [ j ] + a [ i ] [ j - 1 ] - a [ i - 1 ] [ j - 1 ] ; //fac sume
if ( r == 0 )
r = 1 ;
if ( c == 0 )
c = 1 ;
for ( long lin = r ; lin <= n ; ++ lin )
for ( long col = c ; col <= m ; ++ col )
for ( long i = n + 1 ; i <= n * 2; ++ i )
for ( long j = m + 1 ; j <= m * 2 ; ++ j )
{
sum = a [ i ] [ j ] + a [ i - lin ] [ j - col ] - a [ i - lin ] [ j ] - a [ i ] [ j - col ] ;
if ( sum > balans * lin * col )
balans = 1.0 * sum / ( lin * col ) ;
}
printf ( "%.3lf", ( long ) ( balans * 1000 ) / 1000.0 ) ;
}