Pagini recente » Cod sursa (job #2472586) | Monitorul de evaluare | Cod sursa (job #110785) | Cod sursa (job #1648689) | Cod sursa (job #677875)
Cod sursa(job #677875)
#include<stdio.h>
#define maxn 305
int a[maxn],s;
int dp[maxn][maxn];
int n,m,x,k,st,dr;
int max=-1<<30;
void read()
{
freopen("teren.in","r",stdin);
int cur;
scanf("%d%d%d",&n,&m,&x);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
scanf("%d",&cur);
dp[i][j]=dp[i-1][j]+cur;
}
}
void solve()
{
for(int i=1;i<=n;i++)
for(int j=0;j<=i;j++)
{
st=1,s=0;
int cnt=1;
for(int dr=1;dr<=m;dr++)
{
a[dr]=dp[i][dr]-dp[j][dr];
s+=a[dr];
while(s>x && st<=dr) s-=a[st],st++;
if(st<=dr && (i-j)*(dr-st+1)>max) max=(i-j)*(dr-st+1);
}
}
}
int main()
{
read();
solve();
freopen("teren.out","w",stdout);
printf("%d",max);
}