Cod sursa(job #1232049)

Utilizator tudorv96Tudor Varan tudorv96 Data 21 septembrie 2014 22:22:53
Problema Balans Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cstdio>
using namespace std;

const int N = 305;

int m, n, sp[N][N], p, q, i, j, r, b;
double sol;

int main() {
    freopen ("balans.in", "r", stdin);
    freopen ("balans.out", "w", stdout);
    scanf ("%d %d %d %d", &m, &n, &p, &q);
    for (i = 1; i <= m * 2; ++i)
        for (j = 1; j <= n * 2; ++j) {
            if (i <= m && j <= n) {
                scanf ("%d", &sp[i][j]);
                sp[m + i][j] = sp[i][j + n] = sp[i + m][j + n] = sp[i][j];
            }
            sp[i][j] += sp[i-1][j] + sp[i][j-1] - sp[i-1][j-1];
        }
    for (r = p; r <= m; ++r)
        for (b = q; b <= n; ++b)
            for (i = m + 1; i <= m * 2; ++i)
                for (j = n + 1; j <= n * 2; ++j)
                    if (sol * r * b < sp[i][j] + sp[i-r][j-b] - sp[i][j-b] - sp[i-r][j])
                        sol = 1.0 * (sp[i][j] + sp[i-r][j-b] - sp[i][j-b] - sp[i-r][j]) / (r * b);
   printf ("%.3f", sol);
}