Pagini recente » Cod sursa (job #2879567) | Cod sursa (job #1962241) | Cod sursa (job #408169) | Cod sursa (job #2590768) | Cod sursa (job #2675146)
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int NMAX = 505;
const int LOGNMAX = 11;
int n;
int a[LOGNMAX][NMAX][NMAX];
int main()
{
freopen("plantatie.in", "r", stdin);
freopen("plantatie.out", "w", stdout);
int m, x, y, k, dist;
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
scanf("%d", &a[0][i][j]);
for(int i = 1; i <= (int)log2(n); i++)
for(int j = 1; j <= n - (1 << i) + 1; j++)
for(int k = 1; k <= n - (1 << i) + 1; ++k)
a[i][j][k] = max(a[i - 1][j][k], max(a[i - 1][j + (1 << (i - 1))][k], max(a[i - 1][j][k + (1 << (i - 1))], a[i - 1][j + (1 << (i - 1))][k + (1 << (i - 1))])));
for(int i = 1; i <= m; i++)
{
scanf("%d%d%d", &x, &y, &k);
dist = (int)log2(k);
printf("%d\n", max(a[dist][x][y], max(a[dist][x + k - (1 << dist)][y], max(a[dist][x][y + k - (1 << dist)], a[dist][x + k - (1 << dist)][y + k - (1 << dist)]))));
}
return 0;
}