Pagini recente » Cod sursa (job #90678) | Cod sursa (job #2438475) | Cod sursa (job #32251) | Cod sursa (job #1692911) | Cod sursa (job #3224834)
#include <bits/stdc++.h>
#define eb emplace_back
#define ll long long
#define oo LLONG_MAX >> 1
#define pii pair<int, int>
using namespace std;
const string fn("plantatie");
ifstream in(fn + ".in");
ofstream out(fn + ".out");
#define cin in
#define cout out
int rmq[15][505][505], Log[505];
int n, q;
int main()
{
cin >> n >> q;
for (int i = 1; i <= n; i++)
for (int j = 1, x; j <= n; j++)
cin >> rmq[0][i][j];
for (int p = 1, len = 2; len <= n; len *= 2, p++)
for (int i = 1; i <= n - len + 1; i++)
for (int j = 1; j <= n - len + 1; j++)
{
int ii = i + (len / 2);
int jj = j + (len / 2);
rmq[p][i][j] = max({rmq[p - 1][i][j], rmq[p - 1][ii][jj], rmq[p - 1][i][jj], rmq[p - 1][ii][j]});
}
Log[1] = 0;
for (int i = 2; i <= n; i++)
Log[i] = Log[i / 2] + 1;
while (q--)
{
int i, j, l;
cin >> i >> j >> l;
int k = Log[l];
int len = (1 << k);
int ii = i + l - len;
int jj = j + l - len;
//cout << i << ' ' << j << ' ' << l << '\n';
//cout << k << ' ' << i << ' ' << j << ' ' << ii << ' ' << jj << '\n';
cout << max({rmq[k][i][j], rmq[k][i][jj], rmq[k][ii][j], rmq[k][ii][jj]}) << '\n';
}
return 0;
}