Cod sursa(job #1600151)

Utilizator refugiatBoni Daniel Stefan refugiat Data 14 februarie 2016 18:48:41
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

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

const int NMAX = 300;

bool liber[1 + NMAX][1 + NMAX];
int v[1 + NMAX];

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

  int sol = 0;

  for(int l1=1;l1<=n;++l1)
  {
    memset(v, 0, sizeof(v));
    for(int l2=l1;l2<=n;++l2)
    {
      int sum=0;
      int st=1;

      for (int dr=1;dr<=m;++dr)
      {
        v[dr]+=(int)liber[l2][dr];
        sum+=v[dr];

          while(sum>x && st<=dr)
          {
            sum-=v[st];
            ++st;
          }

          sol = max(sol,(dr-st+1)*(l2-l1+1));

      }

    }


  }

  so<<sol<<'\n';

  return 0;
}