Pagini recente » Cod sursa (job #2507676) | Cod sursa (job #1317533) | Cod sursa (job #593613) | Cod sursa (job #1513182) | Cod sursa (job #872260)
Cod sursa(job #872260)
#include<stdio.h>
FILE *f=fopen("teren.in","r"), *g=fopen("teren.out","w");
long int n, m, x, max=0, a[305][305];
void citire(){
long int i, j;
fscanf(f,"%ld %ld %ld\n",&n,&m,&x);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
fscanf(f,"%ld",&a[i][j]);
}
}
}
void recreeaza(){
long int i, j;
for(i=2;i<=n;i++){
a[i][1]+=a[i-1][1];
}
for(j=2;j<=m;j++){
a[1][j]+=a[1][j-1];
}
for(i=2;i<=n;i++){
for(j=2;j<=m;j++){
a[i][j]=a[i][j] + a[i-1][j]+a[i][j-1]- a[i-1][j-1];
}
}
}
void aflare(){
long int i1, j1, i2, j2, nr1, aria;
for(i1=1;i1<=n;i1++){
for(j1=1;j1<=m;j1++){
for(i2=i1;i2<=n;i2++){
for(j2=j1;j2<=m;j2++){
nr1= a[i2][j2] - a[i2][j1-1] - a[i1-1][j2] + a[i1-1][j1-1];
if(nr1<=x){
aria= (i2-i1+1)*(j2-j1+1);
if(aria>max){max=aria;}
}
else{break;}
}
}
}
}
fprintf(g,"%ld\n",max);
}
int main(){
citire();
recreeaza();
//for(long int i=1;i<=n;i++){for(long int j=1;j<=m;j++){fprintf(g,"%ld ",a[i][j]);}fprintf(g,"\n");}
aflare();
return 0;
}