Pagini recente » Cod sursa (job #2133878) | Cod sursa (job #3296552) | Cod sursa (job #2130233) | Istoria paginii utilizator/babypink | Cod sursa (job #3296722)
#include <fstream>
#define DIM 501
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int e[DIM], r[DIM][DIM][10];
int main() {\
int n, q;
fin >> n >> q;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
fin >> r[i][j][0];
for (int p = 1, k = 2; k <= n; p++, k *= 2)
for (int i1 = 1; i1 <= n - k + 1; i1++)
for (int j1 = 1; j1 <= n - k + 1; j1++) {
int i2 = i1 + k / 2;
int j2 = j1 + k / 2;
r[i1][j1][p] = max(max(r[i1][j1][p - 1], r[i1][j2][p - 1]),
max(r[i2][j1][p - 1], r[i2][j2][p - 1]));
}
e[1] = 0;
for (int i = 2; i <= n; i++)
e[i] = e[i / 2] + 1;
while (q--) {
int i1, j1, len;
fin >> i1 >> j1 >> len;
int i2 = i1 + len - (1 << e[len]);
int j2 = j1 + len - (1 << e[len]);
fout << max(max(r[i1][j1][e[len]], r[i1][j2][e[len]]),
max(r[i2][j1][e[len]], r[i2][j2][e[len]])) << "\n";
}
return 0;
}