Pagini recente » Cod sursa (job #996531) | Cod sursa (job #1194982) | Cod sursa (job #439679) | Cod sursa (job #2261299) | Cod sursa (job #3242850)
#include <bits/stdc++.h>
using namespace std;
int rq[9][502][502];
int main() {
ifstream cin{"plantatie.in"};
ofstream cout{"plantatie.out"};
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> rq[0][i][j];
}
}
for (int k = 1; (1 << k) <= n; k++) {
for (int i = 1; i <= n - (1 << k) + 1; i++) {
for (int j = 1; j <= n - (1 << k) + 1; j++) {
rq[k][i][j] = max({rq[k - 1][i][j], rq[k - 1][i + (1 << (k - 1))][j],
rq[k - 1][i][j + (1 << (k - 1))],
rq[k - 1][i + (1 << (k - 1))][j + (1 << (k - 1))]});
}
}
}
int j, i, k;
for (int x = 0; x < m; x++) {
cin >> i >> j >> k;
int p = 31 - __builtin_clz(k);
int res = max({rq[p][i][j], rq[p][i + k - (1 << p)][j],
rq[p][i][j + k - (1 << p)],
rq[p][i + k - (1 << p)][j + k - (1 << p)]});
cout << res << '\n';
}
return 0;
}