Pagini recente » Cod sursa (job #268628) | Cod sursa (job #1546500) | Cod sursa (job #1761169) | Cod sursa (job #2717724) | Cod sursa (job #1724161)
#include <cstdio>
#define MAXN 150
int s[2*MAXN][2*MAXN];
inline int sum(int i, int j, int l, int c){
return s[l][c]-s[i-1][c]-s[l][j-1]+s[i-1][j-1];
}
int main(){
int nrlin, nrcol, a, b, i, j, l, c, p, q;
double ans=0;
FILE *fin, *fout;
fin=fopen("balans.in", "r");
fout=fopen("balans.out", "w");
fscanf(fin, "%d%d%d%d", &nrlin, &nrcol, &a, &b);
for(i=1; i<=nrlin; i++) for(j=1; j<=nrcol; j++) fscanf(fin, "%d", &s[i][j]);
for(i=1; i<=nrlin; i++) for(j=1; j<=nrcol; j++) s[i+nrlin][j]=s[i+nrlin][j+nrcol]=s[i][j+nrcol]=s[i][j];
for(i=1; i<2*nrlin; i++) for(j=1; j<2*nrcol; j++) s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
for(l=a; l<=nrlin; l++) for(c=b; c<=nrcol; c++)
for(i=1, p=l; i<=nrlin; i++, p++) for(j=1, q=c; j<=nrcol; j++, q++)
if(ans*l*c<sum(i, j, p, q)) ans=1.0*sum(i, j, p, q)/(l*c);
fprintf(fout, "%.3lf\n", ans);
fclose(fin);
fclose(fout);
return 0;
}