Cod sursa(job #1205156)

Utilizator ZenusTudor Costin Razvan Zenus Data 5 iulie 2014 15:20:03
Problema Balans Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>

using namespace std;

int S[302][302];
int 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("%d",&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);

return 0;
}