Pagini recente » Cod sursa (job #1325537) | Cod sursa (job #651503) | Cod sursa (job #1726480) | Cod sursa (job #2384887) | Cod sursa (job #1527488)
#include <fstream>
using namespace std;
int a[302][302],s[302][302];
int main()
{
FILE *fin=fopen ("teren.in","r");
FILE *fout=fopen ("teren.out","w");
int n,m,x,i,j,maxi,y,ii,jj,ar;
fscanf (fin,"%d%d%d",&n,&m,&x);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
fscanf (fin,"%d",&a[i][j]);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
// avem matricea cu sume partiale
maxi=0;
for (i=1;i<=n;i++)
for (ii=i;ii<=n;ii++){
// am fixat 2 linii
j=jj=1;
while (j<=n){
y=s[ii][jj]-s[ii][j-1]-s[i-1][jj]+s[i-1][j-1];
if (y<=x){
ar=(ii-i+1)*(jj-j+1);
if (ar>maxi) maxi=ar;
jj++;
if (jj>n){
jj--;
j++;
}
}
else j++;
}
}
fprintf (fout,"%d",maxi);
return 0;
}