Cod sursa(job #2946296)

Utilizator IvanAndreiIvan Andrei IvanAndrei Data 24 noiembrie 2022 18:38:03
Problema Teren Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>

using namespace std;

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

const int max_size = 301;

int a[max_size][max_size], sp[max_size][max_size];

int main ()
{
    int n, m, x;
    in >> n >> m >> x;
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= m; j++)
        {
            in >> a[i][j];
            sp[i][j] = a[i][j] + sp[i - 1][j]; /// ma doarenpl de toata matricea
        }
    }
    int ans = 0;
    for (int i = 1; i <= n; i++)
    {
        for (int j = i; j <= n; j++)
        {
            int l = 1, r = 1, s = 0;
            while (r <= n)
            {
                s += sp[j][r] - sp[i - 1][r];
                while (s > x)
                {
                    s -= sp[j][l] - sp[i - 1][l];
                    l++;
                }
                ans = max(ans, (j - i + 1) * (r - l + 1));
                r++;
            }
        }
    }
    out << ans;
    in.close();
    out.close();
    return 0;
}