Pagini recente » Cod sursa (job #1128189) | Cod sursa (job #1558735) | Cod sursa (job #2738485) | Cod sursa (job #323912) | Cod sursa (job #287024)
Cod sursa(job #287024)
#include<stdio.h>
int teren[301][301];
int sum[301][301];
int n,m,x;
int main()
{
int i,j,s,ok;
int x1,y1,x2,y2,aM = 0;
freopen("teren.in","r",stdin);
freopen("teren.out","w",stdout);
scanf("%d%d%d",&n,&m,&x);
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
scanf("%d",(*(teren+i)+j));
for(x1 = 0; x1 < n; x1++)
for(y1 = 0; y1 < m; y1++)
for(i = 0; i <= x1; i++)
for(j = 0; j <= y1; j++)
*(*(sum+x1)+y1) += *(*(teren+i)+j); //sume partiale
for(x1 = 0; x1 < n; x1++)
for(y1 = 0; y1 < m; y1++)
{
ok = 1;
for(x2 = x1; x2 < n && ok; x2++)
{
for(y2 = y1; y2 < m && ok; y2++)
{
s = *(*(sum+x2)+y2) - *(*(sum+x1-1)+y2) - *(*(sum+x2)+y1-1) + *(*(sum+x1-1)+y1-1);
if(s <= x && aM < (x2-x1+1)*(y2-y1+1))
aM = (x2-x1+1)*(y2-y1+1);
else if(s > x) ok = 0;
}
}
}
printf("%d",aM);
fclose(stdin); fclose(stdout);
return 0;
}