Pagini recente » Cod sursa (job #1646908) | Cod sursa (job #1041913) | Cod sursa (job #468641) | Cod sursa (job #779272) | Cod sursa (job #2626382)
#include <bits/stdc++.h>
using namespace std;
#define N 503
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
int rmq [N][N][13], v [N][N];
int n, m, k, l, x, y, L;
int main (){
fin >> n >> m;
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= n; j ++)
fin >> v [i][j];
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= n; j ++)
rmq [i][j][0] = v [i][j];
for (int k = 1; (1 << k) <= n; k ++)
for (int i = n - (1 << k) + 1; i >= 1; i --)
for (int j = n - (1 << k) + 1; j >= 1; j --)
rmq [i][j][k] = max (max (rmq [i][j][k - 1], rmq [i + (1 << (k - 1))][j][k - 1]),
max (rmq [i][j + (1 << (k - 1))][k - 1], rmq [i + (1 << (k - 1))][j + (1 << (k - 1))][k - 1]));
for (int i = 0; i < m; i ++){
fin >> x >> y >> L;
l = log2 (L);
fout << max (max (rmq [x][y][l], rmq [x + L - (1 << l)][y][l]), max (rmq [x][y + L - (1 << l)][l], rmq [x + L - (1 << l)][y + L - (1 << l)][l])) << '\n';
}
return 0;
}