Cod sursa(job #2553251)

Utilizator Florinos123Gaina Florin Florinos123 Data 21 februarie 2020 19:42:03
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>

using namespace std;

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

int n, m, val, a[305][305];
int maxim;

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

void solve ()
{
 int i, j, ii , suma, aria, stanga;
  for (i=1; i<=n; i++)
  {
      for (ii=i; ii<=n; ii++)
      {
          suma = 0, stanga = 1;
           for (j=1; j<=m; j++)
           {
               suma += (a[ii][j] - a[i-1][j]);
                while (suma > val && stanga <= m)
                {
                    suma -= (a[ii][stanga] - a[i-1][stanga]);
                    stanga ++;
                }
                if (suma <= val)
                {
                    aria = (j - stanga + 1) * (ii - i + 1);
                    maxim = max(aria, maxim);
                }
           }
      }
  }
 g << maxim;
}

int main()
{
read();
solve();
    return 0;
}