Cod sursa(job #1232031)

Utilizator tudorv96Tudor Varan tudorv96 Data 21 septembrie 2014 21:56:23
Problema Balans Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <iomanip>
using namespace std;

ifstream fin ("balans.in");
ofstream fout ("balans.out");

const int N = 305;

int m, n, a[N][N], sp[N][N], p, q, sol = 0;

int main() {
    fin >> m >> n >> p >> q;
    for (int i = 1; i <= m; ++i)
        for (int j = 1; j <= n; ++j) {
            fin >> a[i][j];
            a[m + i][j] = a[i][j + n] = a[i + m][j + n] = a[i][j];
        }
    for (int i = 1; i <= m * 2; ++i)
        for (int j = 1; j <= n * 2; ++j)
            sp[i][j] = sp[i][j-1] + sp[i-1][j] - sp[i-1][j-1] + a[i][j];
    for (int i = p; i <= m * 2; ++i)
        for (int j = q; j <= n * 2; ++j)
            sol = max(sol, sp[i][j] + sp[i-p][j-q] - sp[i][j-q] - sp[i-p][j]);
    fout << fixed << setprecision(3) << 1.0 * sol / (1.0 * p * q);
}