Pagini recente » Cod sursa (job #2136523) | Cod sursa (job #65763) | Cod sursa (job #1112600) | Cod sursa (job #2341459) | Cod sursa (job #2638650)
#include <bits/stdc++.h>
using namespace std;
int n,m,r,c,a[305][305];
long long s[305][305];
int main()
{
freopen("balans.in","r",stdin);
freopen("balans.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&r,&c);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
a[i+n][j]=a[i][j+m]=a[i+n][j+m]=a[i][j];
}
}
for(int i=1;i<=2*n;i++)
{
for(int j=1;j<=2*m;j++)
{
s[i][j]=a[i][j]+s[i-1][j]+s[i][j-1]-s[i-1][j-1];
}
}
long double Max = 0;
for(int i=r;i<=n;i++)
{
for(int j=c;j<=m;j++)
{
for(int L=n+1;L<=2*n;L++)
{
for(int C=m+1;C<=2*m;C++)
{
long long sum = s[L][C]-s[L-i][C]-s[L][C-j]+s[L-i][C-j];
if(1.0*sum/(1.0*i*j)>Max)
{
Max=1.0*sum/(1.0*i*j);
}
}
}
}
}
cout<<fixed<<setprecision(3);
cout<<Max<<'\n';
return 0;
}