Cod sursa(job #2854489)

Utilizator robertpaun9Robert Paun robertpaun9 Data 21 februarie 2022 14:13:16
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb

#include <fstream>

using namespace std;

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

int n, x, a[303][303], i, j, ok = true, m , i1,i2,st,dr,sum, s[1003][1003], maxx;

int main()
{
   cin >> n >> m >> x;
   for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
        {
            cin >> a[i][j];
        }
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
                s[i][j] = a[i][j] + s[i-1][j];
   for(i1=1;i1<=n;i1++)  ///linia de sus
    for(i2=i1;i2<=n;i2++)  ///linia de jos
    {
        sum=0;
            st=1;
            for (dr = 1; dr <= m; dr++)
            {
                sum += s[i2][dr] - s[i1-1][dr];
                while (st <= dr && sum > x)
                {
                    sum -= (s[i2][st] - s[i1-1][st]);
                    st++;
                }
                 if ((i2 - i1 + 1) * (dr - st + 1) > maxx)
                    maxx = (i2 - i1 + 1) * (dr - st + 1);
            }
    }
    cout << maxx;
    return 0;
}