Pagini recente » Cod sursa (job #3002945) | Cod sursa (job #342249) | Cod sursa (job #1273966) | Cod sursa (job #2973349) | Cod sursa (job #147760)
Cod sursa(job #147760)
#include<stdio.h>
int max,max1,st,dr,ki,ok,s,ii,jj,n,m,x,i,j,a[301][301];
int main(){
FILE *f=fopen("teren.in","r");
fscanf(f,"%d %d %d",&n,&m,&x);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
fscanf(f,"%d",&a[i][j]);
}
}
fclose(f);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
a[0][j]=0;
}
for(ii=i;ii<=n;ii++){
ki=0;
ok=1;
for(j=1;j<=m;j++){
a[0][j]+=a[ii][j];
}
max1=0;
s=0;
st=1;
for(dr=1;dr<=m;dr++){
s+=a[0][dr];
while(st<=dr&&s>x){
s-=a[0][st];
st++;
}
if(st<=dr){
if(max1<dr-st+1)max1=dr-st+1;
}
}
/* while(dr<m){
if(s>x){
if(max1<dr-st){
max1=dr-st;
}
s-=a[0][st];
st++;
}
else{
dr++;
s+=a[0][dr];
}
}
if(s<=x&&max1<dr-st+1)max1=dr-st+1;
*/
s=max1*(ii-i+1);
if(s>max)max=s;
}
}
FILE *g=fopen("teren.out","w");
fprintf(g,"%d",max);
fclose(g);
return 0;
}