Cod sursa(job #3278826)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 20 februarie 2025 20:36:46
Problema Balans Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("balans.in");
ofstream fout("balans.out");
int n, m, r, c, i, j, ii, jj, s[152][152];
int rasp;

int main() {
    fin >> n >> m >> r >> c;
    for(i = 1; i <= n; i++) {
        for(j = 1; j <= m; j++) {
            fin >> s[i][j];
            s[i + n][j + m] = s[i + n][j] = s[i][j + m] = s[i][j];
        }
    }
    for(i = 1; i <= 2 * n; i++) {
        for(j = 1; j <= 2 * m; j++) {
            s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];
        }
    }

    for(i = r; i <= n; i++) {
        for(j = c; j <= m; j++) {
            for(ii = n + 1; ii <= 2 * n; ii++) {
                for(jj = m + 1; jj <= 2 * m; jj++) {
                    rasp = max(rasp, 1000 * (s[ii][jj] - s[ii][jj - j] - s[ii - i][jj] + s[ii - i][jj - j]) / (i * j));
                }
            }
        }
    }
    fout << rasp / 1000 << ".";
    fout << setw(3) << setfill('0') << rasp % 1000;

    return 0;
}