Cod sursa(job #196403)

Utilizator gcosminGheorghe Cosmin gcosmin Data 26 iunie 2008 12:19:24
Problema Teren Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#include <string.h>

#define NMAX 310

int N, M, K;

int a[NMAX][NMAX];

int nr[NMAX];

inline int MAX(int a, int b) { return (a > b) ? a : b; }

int main()
{
	int i, j, k, k1, rez = 0, s;

	freopen("teren.in", "r", stdin);
	freopen("teren.out", "w", stdout);

	scanf("%d %d %d", &N, &M, &K);

	for (i = 1; i <= N; i++)
		for (j = 1; j <= M; j++) 
			scanf("%d", &a[i][j]);

	for (i = 1; i <= N; i++) {
		memset(nr, 0, sizeof(nr));

		for (j = i; j <= N; j++) {
			for (k = 1; k <= M; k++) nr[k] += a[j][k];

			for (k = 1, k1 = 1, s = 0; k <= N; k++) {
				s += nr[k];
				while (s > K) s -= nr[k1++];

				rez = MAX(rez, (j - i + 1) * (k - k1 + 1));
			}
		}
	}

	printf("%d\n", rez);

return 0;
}