Pagini recente » Cod sursa (job #657149) | Cod sursa (job #540624) | Cod sursa (job #2710467) | Cod sursa (job #378145) | Cod sursa (job #2640975)
#include <cstdio>
#include <iomanip>
using namespace std;
int n, m, r, c;
double ans;
int sp[305][305];
int main() {
freopen("balans.in", "r", stdin);
freopen("balans.out", "w", stdout);
scanf("%d %d %d %d", &n, &m, &r, &c);
for(int i = 1; i <= 2 * n; i++) {
for(int j = 1; j <= 2 * m; j++) {
if(i <= n && j <= m) {
scanf("%d", &sp[i][j]);
sp[i + n][j] = sp[i][j + m] = sp[i + n][j + m] = sp[i][j];
}
sp[i][j] = sp[i - 1][j] + sp[i][j - 1] - sp[i - 1][j - 1] + sp[i][j];
}
}
ans = -1.0;
for(int x = r; x <= n; x++) {
for(int y = c; y <= m; y++) {
for(int i = n + 1; i <= 2 * n; i++) {
for(int j = m + 1; j <= 2 * m; j++)
if((sp[i][j] - sp[i - x][j] - sp[i][j - y] + sp[i - x][j - y]) > ans * (x * y))
ans = 1.0 * (sp[i][j] - sp[i - x][j] - sp[i][j - y] + sp[i - x][j - y]) / (x * y);
}
}
}
printf("%.3f", (int)(ans * 1000) / 1000.0);
return 0;
}