Pagini recente » Cod sursa (job #2654741) | Cod sursa (job #2858006) | Cod sursa (job #1134651) | Cod sursa (job #2980939) | Cod sursa (job #630302)
Cod sursa(job #630302)
#include <fstream>
#include <iomanip>
using namespace std;
const int SIZE = 301;
int N, M, R, C;
int A[SIZE][SIZE], S[SIZE][SIZE];
int result;
int main()
{
ifstream fin("balans.in");
ofstream fout("balans.out");
fin >> N >> M >> R >> C;
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= M; ++j)
fin >> A[i][j];
for (int j = M + 1; j <= 2 * M - 2; ++j)
A[i][j] = A[i][j - M];
}
for (int i = N + 1; i <= 2 * N - 2; ++i)
for (int j = 1; j <= 2 * M - 2; ++j)
A[i][j] = A[i - N][j];
N = N * 2 - 2, M = M * 2 - 2;
for (int i = 1; i <= N; ++i)
for (int j = 1; j <= M; ++j)
S[i][j] = S[i - 1][j] + S[i][j - 1] - S[i - 1][j - 1] + A[i][j];
for (int i = R; i <= N; ++i)
for (int j = C; j <= M; ++j)
result = max(result, S[i][j] - S[i][j - C] - S[i - R][j] + S[i - R][j - C]);
double now = 1.0 * result / R * C;
fout << fixed << setprecision(3) << now;
fin.close();
fout.close();
}