Cod sursa(job #276517)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 11 martie 2009 10:55:50
Problema Teren Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>

using namespace std;

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

int mat[310][310];
int M[310][310];
int n,m,A_max,NR;

void citire()
{
     fin>>n>>m>>NR;
     for (int i=1;i<=n;i++)
          for (int j=1;j<=m;j++)
          {
               fin>>mat[i][j];
               M[i][j]=M[i-1][j]+mat[i][j];
          }
}

inline int max(int a,int b)
{
     return a>b?a:b;
}

int main()
{
     citire();
     for (int l1=1;l1<=n;l1++)
          for (int l2=l1;l2<=n;l2++)
          {
               int st=1;
               int S=0;
               for (int dr=1;dr<=m;dr++)
               {
                    S+=M[l2][dr]-M[l1-1][dr];
                    while (st<=dr && S>NR)
                    {
                         S-=M[l2][st]-M[l1-1][st];
                         st++;
                         if (st<=dr)
                              A_max=max(A_max,(dr-st+1)*(l2-l1+1));
                    }
               }
          }
     fout<<A_max;
     return 0;
}