Cod sursa(job #561643)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 20 martie 2011 22:32:16
Problema Balans Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>

#define maxim(a,b) (a>b ? a : b)

int n,m,l,c,a[305][305];
double sol;

int main ()
{
    int i,j,k,t;
    double s;
    
	freopen("balans.in","r",stdin);
	freopen("balans.out","w",stdout);
	scanf("%d%d%d%d",&n,&m,&l,&c);
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			scanf("%d",&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][j]+a[i-1][j]+a[i][j-1]-a[i-1][j-1];

    for(i=n+1;i<=2*n;i++)
        for(j=m+1;j<=2*m;j++)
            for(k=l;k<=n;k++)
                for(t=c;t<=m;t++)
                {
                    s=a[i][j]-a[i][j-t]-a[i-k][j]+a[i-k][j-t];
                    s=s/((double)k*t);
                    sol=maxim(sol,s);
                }
	printf("%.3lf\n",sol);
	return 0;
}