Pagini recente » Cod sursa (job #404741) | Cod sursa (job #707891) | Cod sursa (job #1330781) | Cod sursa (job #3156687) | Cod sursa (job #114740)
Cod sursa(job #114740)
#include<stdio.h>
FILE*f=fopen("teren.in","r");
FILE*g=fopen("teren.out","w");
int t[302][302],s[302][302],a[302],n,m, Max, X;
void read()
{
fscanf(f,"%d %d %d",&n,&m, &X);
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
fscanf(f,"%d",&t[i][j]);
}
void form_s()
{
int p,q;
for(p=1;p<=n;++p)
for(q=1;q<=m;++q)
s[p][q]=s[p-1][q]+t[p][q];
}
void form_a(int p, int k)
{
for(int i=1;i<=m;++i) a[i]=s[k][i]-s[p-1][i];
}
void det_secv(int p, int k)
{
int dr, st, s=0;
st=1; dr=1;
while(dr<=m)
{
s+=a[dr];
while(dr>=st &&s>X)
{
s-=a[st];
st++;
}
if(st<=dr) if(Max<(dr-st+1)*(k-p+1)) Max=(dr-st+1)*(k-p+1);
dr++;
}
}
int main()
{
read();
form_s();
int i,j;
for(i=1;i<n;++i)
for(j=i+1;j<=n;++j)
{
form_a(i,j);
det_secv(i,j);
}
fprintf(g,"%d",Max);
return 0;
}