Cod sursa(job #3151338)

Utilizator andrei1807Andrei andrei1807 Data 20 septembrie 2023 18:47:07
Problema Teren Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NMAX = 304;

int a[NMAX][NMAX], resi1, resi2, resj1, resj2, amax;

int main() {

    int n, m, x;
    fin >> n >> m >> x;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            fin >> a[i][j];
            a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
        }
    }

    for (int i1 = 1; i1 <= n; i1++) {
        for (int j1 = 1; j1 <= m; j1++) {
            for (int i2 = i1; i2 <= n; i2++) {
                for (int j2 = j1; j2 <= m; j2++) {
                    int s = a[i2][j2] - a[i2][j1 - 1] - a[i1 - 1][j2] + a[i1 - 1][j1 - 1];
                    if (s <= x) {
                        int arie = (j2 - j1 + 1) * (i2 - i1 + 1);
                        if (arie > amax) {
                            amax = arie;
                            resi1 = i1;
                            resi2 = i2;
                            resj1 = j1;
                            resj2 = j2;
                        }
                    }
                }
            }
        }
    }

    fout << amax;

    return 0;
}