Cod sursa(job #547432)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 6 martie 2011 12:39:29
Problema Balans Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>

int n, m, r, c;
int sp[302][302];
double suma, sol;

int main ()
{
	freopen ("balans.in", "r", stdin);
	freopen ("balans.out", "w", stdout);
	
	scanf ("%d %d %d %d", &n, &m, &r, &c);
	
	int i, j, k, l, x;
	
	for (i = 1; i <= n; i ++)
		for (j = 1; j <= m; j ++)
		{
			scanf ("%d", &x);
			sp[i][j] = sp[i + n][j] = sp[i][j + m] = sp[i + n][j + m] = x;
		}
	for (i = 1; i <= 2 * n; i ++)
		for (j = 1; j <= 2 * m; j ++)
			sp[i][j] = sp[i][j] + sp[i - 1][j] + sp[i][j - 1] - sp[i - 1][j - 1];
	
	for (i = r; i <= n; i ++)
		for (j = c; j <= m; j ++)
			for (k = n + 1; k <= 2 * n; k ++)
				for (l = m + 1; l <= 2 * m; l ++)
				{
					suma = sp[k][l] - sp[k - i][l] - sp[k][l - j] + sp[k - i][l - j];
					if (sol * i * j < suma)
						sol = suma / (i * j);
				}
	sol = ((int)(sol * 1000)) / (double)1000;
	printf ("%.3lf\n", sol);
	
	return 0;
}