Cod sursa(job #3216677)

Utilizator yellowGreenFatu Mihai yellowGreen Data 19 martie 2024 08:18:59
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;
ifstream cin("teren.in");
ofstream cout("teren.out");
int n,m,x,A[305][305],amax;
int main()
{
    cin>>n>>m>>x;
    for(int i=1;i<=n;i++)
      for(int j=1;j<=m;j++)
        cin>>A[i][j];
    for(int i=1;i<=n;i++)
      for(int j=1;j<=m;j++)
          A[i][j]=A[i][j]+A[i-1][j]+A[i][j-1]-A[i-1][j-1];
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++)
    {
      int B[305],s=0;
      for(int k=1;k<=m;k++)
        B[k]=A[j][k]-A[j][k-1]-A[i-1][k]+A[i-1][k-1];
      int l=1;
      for(int r=1;r<=m;r++)
      {
        s+=B[r];
        if(s<=x)
        {
          amax=max(amax,(j-i+1)*(r-l+1));
        }
        else
        {
          while(s>x)
            s-=B[l++];
        }
      }
    }
    cout<<amax;
    return 0;
}