Pagini recente » Cod sursa (job #226532) | Cod sursa (job #2542843) | Cod sursa (job #1126326) | Cod sursa (job #420877) | Cod sursa (job #3242831)
#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;
}