Pagini recente » Cod sursa (job #2194982) | Cod sursa (job #868682) | Cod sursa (job #876707) | Cod sursa (job #2357978) | Cod sursa (job #1849152)
#include <cstdio>
#include <algorithm>
#define BIT(x) (1<<(x))
using namespace std;
int mat[500][500][10];
int n, m;
int main()
{
int i, j, k, l;
freopen("plantatie.in", "r", stdin);
freopen("plantatie.out", "w", stdout);
scanf("%d%d", &n, &m);
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
scanf("%d", &mat[i][j][0]);
for(i = 1; BIT(i) <= n; i++)
{
for(j = 0; j <= n - BIT(i); j++)
{
for(k = 0; k <= n - BIT(i); k++)
{
mat[j][k][i] = max(max(mat[j][k][i - 1], mat[j + BIT(i - 1)][k][i - 1]),
max(mat[j][k + BIT(i - 1)][i - 1], mat[j + BIT(i - 1)][k + BIT(i - 1)][i - 1]));
}
}
}
while(m--)
{
scanf("%d%d%d", &i, &j, &k);
i--; j--;
for(l = 30; BIT(l) > k; l--);
int rez = max(max(mat[i][j][l], mat[i + k - BIT(l)][j][l]),
max(mat[i][j + k - BIT(l)][l], mat[i + k - BIT(l)][j + k - BIT(l)][l]));
printf("%d\n", rez);
}
return 0;
}