Pagini recente » Cod sursa (job #248643) | Cod sursa (job #2357124) | Cod sursa (job #1650153) | Cod sursa (job #2476957) | Cod sursa (job #788754)
Cod sursa(job #788754)
#include <fstream>
#include <iomanip>
#define NM 310
using namespace std;
ifstream f("balans.in");
ofstream g("balans.out");
int N,M,i,j,R,C,k,l;
int A[NM][NM];
double ANS=0,CANS;
void Read ()
{
f >> N >> M >> R >> C;
for (i=1; i<=N; i++)
for (j=1; j<=M; j++)
{
f >> A[i][j];
A[i+N][j]=A[i][j];
A[i][j+M]=A[i][j];
A[i+N][j+M]=A[i][j];
}
N<<=1;
M<<=1;
for (i=1; i<=N; i++)
for (j=1; j<=M; j++)
A[i][j]+=A[i-1][j]+A[i][j-1]-A[i-1][j-1];
f.close();
}
void Solve ()
{
for (k=R; k<=N/2; k++)
for (l=C; l<=M/2; l++)
for (i=N/2+1; i<=N; i++)
for (j=M/2+1; j<=M; j++)
{
CANS=(A[i][j]-A[i-k][j]-A[i][j-l]+A[i-k][j-l])/(1.0*k*l);
ANS=max(ANS,CANS);
}
}
void Print ()
{
g << fixed << setprecision(3) << ANS << '\n';
}
int main ()
{
Read();
Solve();
Print();
return 0;
}