Cod sursa(job #1687776)

Utilizator vladvlad00Vlad Teodorescu vladvlad00 Data 13 aprilie 2016 08:13:25
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <fstream>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;

ifstream fin("teren.in");
ofstream fout("teren.out");

int n, m, x, in, maxim, unu[305], sC[305][305];

int main()
{
	int i, j, k, X, S;

	fin >> n >> m >> x;
	for (i = 1; i <= n; i++)
		for (j = 1; j <= m; j++)
		{
			fin >> X;
			sC[i][j] = sC[i - 1][j] + X;
		}
	for (i = 1; i <= n; i++)
		for (j = i; j <= n; j++)
		{
			for (k = 1; k <= m;k++)
				unu[k] = sC[j][k] - sC[i - 1][k];
			S = 0;
			in = 1;
			k = 1;
			while (k <= m)
			{
				S += unu[k];
				if (S > x)
					while (S > x)
						S -= unu[in++];
				else
					maxim = max(maxim, (j - i + 1)*(k - in + 1));
				k++;
			}
		}
	fout << maxim << '\n';
	return 0;
}