Cod sursa(job #2847421)

Utilizator daria_pDaria Popescu daria_p Data 10 februarie 2022 19:40:18
Problema Balans Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("balans.in");
ofstream fout("balans.out");
int n,i,m,j,a[310][310],r,c,i1,j1,S;
float sol;
int main()
{
    fin >>n>>m>>r>>c;
    for (i=1;i<=n;i++)
    {
        for (j=1;j<=m;j++)
        {
            fin >>a[i][j];
            a[i+n][j]=a[i][j+m]=a[i+n][j+m]=a[i][j];
        }
    }
    for (i=1;i<=2*n;i++)
    {
        for (j=1;j<=2*m;j++)
        {
            a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+a[i][j];
        }
    }
    sol=-1.0;
    for(i=r; i<=n; i++)
    {
        for(j=c; j<=m; j++)
        {
            for(i1=n+1; i1<=2*n; i1++)
            {
                for(j1=m+1; j1<=2*m; j1++)
                {
                    S=a[i1][j1]-a[i1-i][j1]-a[i1][j1-j]+a[i1-i][j1-j];
                    if(S>sol*i*j)
                    {
                        sol=1.0*S/(i*j);
                    }
                }
            }
        }
    }
    fout <<fixed<<setprecision(3)<<(int)(sol*1000)/1000.0;
    return 0;
}