Pagini recente » Cod sursa (job #34131) | Cod sursa (job #2064850) | Cod sursa (job #2097280) | Cod sursa (job #52627) | Cod sursa (job #3213188)
#include <fstream>
using namespace std;
ifstream cin("plantatie.in");
ofstream cout("plantatie.out");
const int NMAX = 501;
int n, m;
int r[9][NMAX][NMAX];
int E[NMAX];
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
cin >> r[0][i][j];
E[1] = 0;
for (int i = 2; i <= n; i++)
E[i] = 1 + E[i / 2];
for(int p=1,len=2;len<=n;p++,len*=2)
for(int i=1;i+len-1 <=n; i++)
for (int j = 1; j+len-1 <= n; j++)
{
int i2 = i + (len >> 1);
int j2 = j + (len >> 1);
r[p][i][j] = max(max(r[p-1][i][j], r[p - 1][i2][j]), max(r[p - 1][i][j2], r[p - 1][i2][j2]));
}
for (int k = 1; k <= m; k++)
{
int i, j, l;
cin >> i >> j >> l;
int p = E[l];
int len = (1 << p);
int i2 = i + l - len;
int j2 = j + l - len;
cout << max(max(r[p][i][j], r[p][i2][j]), max(r[p][i][j2], r[p][i2][j2])) << '\n';
}
}