Cod sursa(job #2639090)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 31 iulie 2020 12:39:07
Problema Balans Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <cstdio>

using namespace std;
int n,m,r,c,a[303][303];
double sol;
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<=2*n; i++)
    {
        for(int j=1; j<=2*m; j++)
        {
            if(i<=n && j<=m)
            {
                scanf("%d",&a[i][j]);
                a[i+n][j]=a[i][j+m]=a[i+n][j+m]=a[i][j];
            }
            a[i][j]=a[i][j]+a[i][j-1]+a[i-1][j]-a[i-1][j-1];
        }
    }
    for(int x=r; x<=n; x++)
    {
        for(int y=c; y<=m; y++)
        {
            for(int i=n+1; i<=2*n; i++)
            {
                for(int j=m+1; j<=2*m; j++)
                {
                    if((a[i][j]-a[i-x][j]-a[i][j-y]+a[i-x][j-y])>sol*x*y)
                    {
                        sol=1.0*(a[i][j]-a[i-x][j]-a[i][j-y]+a[i-x][j-y])/(x*y);
                    }
                }
            }
        }
    }
    printf("%.3f",((int)(sol*1000))/1000.0);
    return 0;
}