Pagini recente » Cod sursa (job #1439842) | Cod sursa (job #598501) | Borderou de evaluare (job #2883669) | Cod sursa (job #2657516) | Cod sursa (job #919410)
Cod sursa(job #919410)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("teren.in");
ofstream fout("teren.out");
int N, M, X, sol;
short a[311][311], s[311][311];
int main()
{
fin >> N >> M >> X;
for (int i = 1; i <= N; i++)
for (int j = 1; j <= M; j++)
fin >> a[i][j], s[i][j] = s[i - 1][j] + a[i][j];
for (int l1 = 1; l1 <= N; l1++)
for (int l2 = l1; l2 <= N; l2++)
{
int left = 0, sum = 0, suml = 0;
for (int c = 1; c <= M; c++)
{
sum = sum + s[l2][c] - s[l1 - 1][c];
while (sum - suml > X)
{
left++;
suml = suml + s[l2][left] - s[l1 - 1][left];
}
if (sol < (l2 - l1 + 1) * (c - left))
{
sol = (l2 - l1 + 1) * (c - left);
}
}
}
fout << sol << '\n';
fout.close();
return 0;
}