Pagini recente » Cod sursa (job #595570) | Cod sursa (job #1700882) | Cod sursa (job #2485755) | Cod sursa (job #1063296) | Cod sursa (job #2746953)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("balans.in");
ofstream fout("balans.out");
const int nmax = 155;
int n, m, r, c, a[2 * nmax][2 * nmax];
double ans;
void read(){
fin >> n >> m >> r >> c;
for(int i = 1; i <= 2 * n; i++)
for(int j = 1; j <= 2 * m; j++){
fin >> a[i][j];
a[i + n][j] = a[i][j + m] = a[i + n][j + m] = a[i][j];
}
}
void sum(){
for(int i = 1; i <= 2 * n; i++)
for(int j = 1; j <= 2 * m; j++)
a[i][j] += (a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1]);
}
void solve(){
ans = -1.0;
for(int i1 = r; i1 <= n; i1++)
for(int j1 = c; j1 <= m; j1++)
for(int i = n + 1; i <= 2 * n; i++)
for(int j = m + 1; j <= 2 * m; j++)
if((a[i][j] - a[i - i1][j] - a[i][j - j1] + a[i - i1][j - j1]) > ans * i1 * j1)
ans = 1.0 * (a[i][j] - a[i - i1][j] - a[i][j - j1] + a[i - i1][j - j1]) / (i1 * j1);
fout << fixed << setprecision(3) << (int)(ans * 1000) / 1000.0;
}
int main()
{
read();
sum();
solve();
return 0;
}