Pagini recente » Cod sursa (job #318144) | Cod sursa (job #2988108) | Cod sursa (job #1419602) | Cod sursa (job #387960) | Cod sursa (job #2631275)
#include <bits/stdc++.h>
#define log(x) 31-__builtin_clz(x)
using namespace std;
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
int N, M, rmq[10][512][512];
int main () {
fin >> N >> M;
for (int i = 0; i < N; i ++)
for (int j = 0; j < N; j ++)
fin >> rmq[0][i][j];
for (int k = 1; (1 << k) <= N; k ++)
for (int i = 0; i + (1 << k) <= N; i ++)
for (int j = 0; j + (1 << k) <= N; j ++)
rmq[k][i][j] = max (max (rmq[k - 1][i][j], rmq[k - 1][i][j + (1 << k - 1)]),
max (rmq[k - 1][i + (1 << k - 1)][j], rmq[k - 1][i + (1 << k - 1)][j + (1 << k - 1)]));
while (M --) {
int i, j, k;
fin >> i >> j >> k;
i --, j --;
int lg = log(k);
fout << max (max (rmq[lg][i][j], rmq[lg][i][j - (1 << lg) + k]),
max (rmq[lg][i - (1 << lg) + k][j], rmq[lg][i - (1 << lg) + k][j - (1 << lg) + k])) << '\n';
}
fin.close();
fout.close();
return 0;
}