Cod sursa(job #2638642)

Utilizator iulianarsenoiuArsenoiu Iulian iulianarsenoiu Data 29 iulie 2020 11:30:33
Problema Balans Scor 25
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("balans.in");
ofstream g("balans.out");
int n,m,r,c,a[305][305];
long long s[305][305];
int main()
{
    f>>n>>m>>r>>c;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            f>>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);
                    }
                }
            }
        }
    }
    g<<fixed<<setprecision(3);
    g<<Max<<'\n';
    return 0;
}