Cod sursa(job #1205158)

Utilizator ZenusTudor Costin Razvan Zenus Data 5 iulie 2014 15:23:18
Problema Balans Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>

using namespace std;

long long S[302][302];
long long i,j,N,M,X,R,C,line,column;
double MAX;

int main()
{
freopen("balans.in","r",stdin);
freopen("balans.out","w",stdout);

scanf("%d%d%d%d",&N,&M,&R,&C);

for (i=1;i<=2*N;++i)
for (j=1;j<=2*M;++j)
{
    if (i<=N && j<=M)
    {
        scanf("%lld",&S[i][j]);
        S[i+N][j]=S[i][j+M]=S[i+N][j+M]=S[i][j];
    }
    S[i][j]=S[i][j]+S[i][j-1]+S[i-1][j]-S[i-1][j-1];
}


for (line=R;line<=N;++line)
for (column=C;column<=M;++column)
for (i=N+1;i<=2*N;++i)
for (j=M+1;j<=2*M;++j)
if ((S[i][j]-S[i-line][j]-S[i][j-column]+S[i-line][j-column])>double(MAX*line*column))
MAX=(double)(S[i][j]-S[i-line][j]-S[i][j-column]+S[i-line][j-column])/(1.0*line*column);

printf("%.3f",(MAX*1000.0)/1000.0);

return 0;
}