Cod sursa(job #477900)

Utilizator freak93Adrian Budau freak93 Data 16 august 2010 16:03:55
Problema Balans Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>

using namespace std;

const char iname[]="balans.in";
const char oname[]="balans.out";
const int maxn=305;

ifstream f(iname);
ofstream g(oname);

int n,m,r,c,a[maxn][maxn],s[maxn][maxn],i,j,k,p;
double rez=0,x;

int main()
{
    f>>n>>m>>r>>c;
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
            f>>a[i][j],a[i+n][j]=a[i+n][j+m]=a[i][j+m]=a[i][j];
    for(i=1;i<=2*n;++i)
        for(j=1;j<=2*m;++j)
            s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
    for(i=r;i<=n;++i)
        for(j=c;j<=m;++j)
            for(k=n+1;k<=2*n;++k)
                for(p=m+1;p<2*m;++p)
                {
                    x=s[k][p]-s[k-i][p]-s[k][p-j]+s[k-i][p-j];
                    if(rez*(i*j)<x)
                        rez=x/(i*j);
                }
    rez=((int)(rez*1000))/1000.0;
    g.setf(ios::fixed,ios::floatfield);
    g.precision(3);
    g<<rez<<"\n";
}