Cod sursa(job #1965149)

Utilizator shantih1Alex S Hill shantih1 Data 13 aprilie 2017 23:24:20
Problema Teren Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>

using namespace std;

long long n, m, i, j, v[303][303], s[303][303], z, k, nr, l, mx, cs, rez;

int main () {
	
	ifstream fin("teren.in");
	ofstream fout("teren.out");
	
	fin >> n >> m >> k;
	for (i = 1; i <= n; i++)
		for (j = 1; j <= m; j++)	fin >> s[i][j];
	
	for (j = 1; j <= m; j++)
	{
		 z = 0;
		for (i = 1; i <= n; i++)
		{	s[i][j] += z;    z = s[i][j];   }
	}
	
	/*for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
			cout << s[i][j] << " ";
		cout << "\n";
	}*/
	
	rez = 0;
	for (i = 1; i <= n; i++)
	{
		for (j = i; j <= n; j++)
		{
			cs = 0;
			mx = 0;
			nr = 0;
			for (l = 1; l <= m; l++)
			{
				cs += s[j][l]-s[i-1][l];
				if (cs <= k)	nr++;
				else
				{
					if (nr > mx)	mx = nr;
	
					if (s[j][l]-s[i-1][l] <= k)
					{
						nr = 1;
						cs = s[j][l]-s[i-1][l];
					}
					else
					{
						nr = 0;
						cs = 0;
					}
				}
			}
			
			if (nr > mx)	mx = nr;
			if ((j-i+1)*mx > rez)		rez = (j-i+1)*mx;
		}
	}
	
	fout << rez << "\n";
}