Cod sursa(job #168812)

Utilizator ErgoVicol Sergiu Constantin Ergo Data 31 martie 2008 19:54:19
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
//Teren PreOni 2008

#include <fstream.h>
ifstream fin("teren.in");
ofstream fout("teren.out");
int A[301][301];

int main(){
      int m,n,x,i,j,Val,Max,Arie,k,St,Suma=0,o;
      fin>>n>>m>>x;
      for (i=1;i<=n;i++)
      	for (j=1;j<=m;j++){
               	fin>>Val;
                  A[i][j]=A[i-1][j]+A[i][j-1]-A[i-1][j-1]+Val;
            }
      Max=0;
      for (i=1;i<=n;i++)
         	for (j=i;j<=n;j++){
               	St=1;
                  Arie=j-i+1;
            	for (k=1;k<=m;k++){
                        while (Suma=A[j][k]-A[j][St-1]-A[i-1][k]+A[i-1][St-1]>x&&St<k)
                        	St++;
//                      fprintf(stderr,"Suma= %d  %d %d %d \n",A[j][k],A[j][St-1],A[i-1][k],A[i-1][St-1]);
                        if (A[j][k]-A[j][St-1]-A[i-1][k]+A[i-1][St-1]<=x)
                          	if ((j-i+1)*(k-St+1)>Max){
                                    Max=(j-i+1)*(k-St+1);
                              }
                  }
            }
      fout<<Max;
      fout.close();


}