Pagini recente » Cod sursa (job #558855) | Cod sursa (job #2481094) | Cod sursa (job #670864) | Cod sursa (job #514423) | Cod sursa (job #1496604)
#include <cstdio>
#include <algorithm>
#define DIM 156
using namespace std;
int D[DIM*2][DIM*2], N, M, L, C, X;
int sum(int is, int js, int ij, int jj){
return D[ij][jj] - D[is-1][jj] - D[ij][js-1] + D[is-1][js-1];
}
int main(){
freopen("balans.in" ,"r", stdin );
freopen("balans.out","w", stdout);
scanf("%d %d %d %d", &N, &M, &L, &C);
for(int i = 1; i <= N; i ++)
for(int j = 1; j <= M; j ++){
scanf("%d", &X);
D[i][j] = X;
D[i+N][j] = X;
D[i][j+M] = X;
D[i+N][j+M] = X;
}
for(int i = 1; i <= 2 * N; i ++)
for(int j = 1; j <= 2 * M; j ++)
D[i][j] += D[i-1][j] + D[i][j-1] - D[i-1][j-1];
double maxim = 0;
for(int l = L; l <= N; l ++)
for(int c = C; c <= M; c ++)
for(int is = 1, ij = is + l - 1; is <= N; is ++, ij ++)
for(int js = 1, jj = js + c - 1; js <= M; js ++, jj ++)
maxim = max(maxim, (double)((double)sum(is, js, ij, jj) / (double)(l * c)));
printf("%.3f", maxim);
fclose(stdin );
fclose(stdout);
return 0;
}