Pagini recente » Cod sursa (job #144655) | Cod sursa (job #392800) | Cod sursa (job #977503) | Cod sursa (job #2384042) | Cod sursa (job #370711)
Cod sursa(job #370711)
#include <cstdio>
#include <cstring>
#define file_in "teren.in"
#define file_out "teren.out"
int n,m,suma,x,i,j,k,st,dr,arie_max,t[310][310],s[310][310],a[310];
inline int max(int a, int b) { return a>b?a:b; }
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d %d", &n, &m, &x);
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
scanf("%d", &t[i][j]);
for (i=1;i<=m;++i)
{
int nr1=0;
for (j=1;j<=n;++j)
if (t[j][i]==1) nr1++;
a[i]=nr1;
}
/*for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
s[i][j]=s[i-1][j]+t[i][j];
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
for (k=1;k<=m;++k)
a[k]=s[j][k]-s[i-1][k];*/
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
{
st=1;
suma=0;
for (dr=1;dr<=m;++dr)
{
suma+=a[dr];
while(suma>x && st<=dr)
{
suma-=a[st];
st++;
}
if (st<=dr)
arie_max=max(arie_max,(j-i+1)*(dr-st+1));
}
}
printf("%d", arie_max);
fclose(stdin);
fclose(stdout);
return 0;
}