Cod sursa(job #128209)
| Utilizator | Data | 26 ianuarie 2008 17:21:25 | |
|---|---|---|---|
| Problema | Teren | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<stdio.h>
int n,m,i,j,k,a[301][301],x,st,dr,s,max;
int main()
{freopen("teren.in","r",stdin);
freopen("teren.out","w",stdout);
scanf("%d %d %d",&n,&m,&x);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{scanf("%d",&k);
a[i][j]=a[i-1][j]+k;}
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
{s=0;st=1;dr=1;
while(dr<=m)
{s=s+a[j][dr]-a[i-1][dr];
while(s>x){s=s-a[j][st]+a[i-1][st];st++;}
if(max<(j-i+1)*(dr-st+1)) max=(j-i+1)*(dr-st+1);
dr++;}
}
printf("%d\n",max);
fclose(stdout);
return 0;}
