Pagini recente » Cod sursa (job #1583245) | Cod sursa (job #3287382) | Cod sursa (job #3168480) | Cod sursa (job #639373) | Cod sursa (job #850418)
Cod sursa(job #850418)
#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 ( ; r <= n ; ++ r )
for ( ; c <= m ; ++ c )
for ( long i = n + 1 ; i <= n * 2; ++ i )
for ( long j = m + 1 ; j <= m * 2 ; ++ j )
{
sum = a [ i ] [ j ] + a [ i - r ] [ j - c ] - a [ i - r ] [ j ] - a [ i ] [ j - c ] ;
double aux = 1.0 * sum , prod = 1.0 * c * r ;
if ( aux > balans * prod )
balans = aux / prod ;
}
printf ( "%.3lf", ( long ) ( balans * 1000 ) / 1000.0 ) ;
}