Pagini recente » Cod sursa (job #62785) | Cod sursa (job #2738774) | Cod sursa (job #1147422) | Cod sursa (job #2430097) | Cod sursa (job #1679282)
#include <fstream>
#include <vector>
#include <cmath>
#include <algorithm>
#define NMAX 505
#define LMAX 12
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int i, n, j, nrquiz, x, y, k, rmq[NMAX][NMAX][LMAX], l;
int main()
{
f >> n >> nrquiz;
for (i = 1; i <= n; ++ i)
for (j = 1; j <= n; ++ j)
f >> rmq[i][j][0];
for (l = 1; (1 << l) <= n; ++ l)
for (i = 1; i + (1 << l) - 1 <= n; ++ i)
for (j = 1; j + (1 << l) - 1 <= n; ++ j)
rmq[i][j][l] = max(max(max(rmq[i][j][l - 1], rmq[i + (1 << (l - 1))][j][l - 1]), rmq[i][j + (1 << (l - 1))][l - 1]), rmq[i + (1 << (l - 1))][j + (1 << (l - 1))][l - 1]);
for (; nrquiz; -- nrquiz)
{
f >> x >> y >> k;
l = log2(k);
g << max(max(max(rmq[x][y][l], rmq[x + k - (1 << l)][y][l]), rmq[x][y + k - (1 << l)][l]), rmq[x + k - (1 << l)][y + k - (1 << l)][l]) << '\n';
}
return 0;
}