Cod sursa(job #168641)

Utilizator ErgoVicol Sergiu Constantin Ergo Data 31 martie 2008 18:14:52
Problema Teren Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
//Teren PreOni 2008

#include <fstream.h>

ifstream fin("teren.in");
ofstream fout("teren.out");
int A[301][301];

int Sum(int x1,int y1,int x2,int y2){
	return A[x1][y1]-A[x1][y2-1]-A[x2-1][y1]+A[x2-1][y2-1];
}
int main(){

      int m,n,x,i,j,Val,Max,Arie,k,St,Suma=0;
      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-1;i++)
         	for (j=i;j<=n;j++){
               	St=1;
                  Arie=j-i+1;
            	for (k=1;k<=m;k++){
                        while (Suma=Sum(j,k,i,St)>x&&St<k) St++;

                        if (Suma<=x)
                          	if ((j-i+1)*(k-St+1)>Max)
                                	Max=(j-i+1)*(k-St+1);
                  }
            }
      fout<<Max;
      fout.close();


}