Pagini recente » Cod sursa (job #2627016) | Cod sursa (job #1401811) | Cod sursa (job #3229509) | Cod sursa (job #2737229) | Cod sursa (job #2552654)
#include <fstream>
using namespace std;
ifstream f ("teren.in");
ofstream g ("teren.out");
int a[305][305], suma[305][305], x, n, m;
void read ()
{
int i, j;
f >> n >> m >> x;
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
{
f >> a[i][j];
}
}
}
void precalc ()
{
int i, j;
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
{
suma[i][j] = a[i][j] + suma[i-1][j] + suma[i][j-1] - suma[i-1][j-1];
}
}
}
int getsuma (int i, int j, int ii, int jj)
{
return suma[ii][jj] - suma[ii][j-1] - suma[i-1][jj] + suma[i-1][j-1];
}
void solve ()
{
int i, j, ii, jj, aria, aux, maxim = 0;
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
{
for (ii=i; ii<=n; ii++)
{
for (jj=j; jj<=m; jj++)
{
aux = getsuma(i, j, ii, jj);
if (aux <= x)
{
aria = (ii - i + 1) * (jj - j + 1);
maxim = max(maxim, aria);
}
}
}
}
}
g << maxim;
}
int main()
{
read();
precalc();
solve();
return 0;
}