Pagini recente » Cod sursa (job #820704) | Cod sursa (job #652923) | Cod sursa (job #2577378) | Cod sursa (job #2290518) | Cod sursa (job #923422)
Cod sursa(job #923422)
#include <fstream>
#include <iomanip>
#define MAX 305
using namespace std;
int N, M, R, C;
int A[MAX][MAX], V[MAX][MAX];
double ans;
void citire() {
ifstream in("balans.in");
in>>N>>M>>R>>C;
for(int i = 1; i <= N; i++)
for(int j = 1; j <= M; j++) {
in>>A[i][j];
A[i + N][j] = A[i][j + N] = A[i + N][j + N] = A[i][j];
} in.close();
for(int i = 1; i <= 2 * N; i++)
for(int j = 1; j <= 2 * M; j++)
V[i][j] = A[i][j] + V[i - 1][j] + V[i][j - 1] - V[i - 1][j - 1];
}
void solve() {
for(int r = R; r <= N; r++)
for(int c = C; c <= M; c++)
for(int i = 1; i <= N + 1; i++)
for(int j = 1; j <= M + 1; j++) {
int rez = V[i + r - 1][j + c - 1] - V[i + r - 1][j - 1] -
V[i - 1][j + c - 1] + V[i - 1][j - 1];
ans = max(ans, (1.0 * rez) / (1.0 * r * c));
}
}
void afisare() {
ofstream out("balans.out");
out<<fixed<<setprecision(3)<<ans<<"\n";
out.close();
}
int main() {
citire();
solve();
afisare();
return 0;
}