Pagini recente » Cod sursa (job #2909269) | Cod sursa (job #2934787) | Cod sursa (job #2509070) | Cod sursa (job #2171783) | Cod sursa (job #850412)
Cod sursa(job #850412)
#include<stdio.h>
#include<algorithm>
using namespace std ;
long a [ 307 ] [ 307 ] , r , c , n , m , sum , 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 ] [ j ] *= 1000 ;
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 ] ;
sum -= a [ i - r ] [ j ] + a [ i ] [ j - c ] ;
if ( sum > balans * c * r )
balans = sum / ( c * r ) ;
}
printf ( "%ld.%ld", balans / 1000 , balans % 1000 ) ;
}