Pagini recente » Cod sursa (job #1682506) | Cod sursa (job #708778) | Cod sursa (job #2422698) | Cod sursa (job #2892105) | Cod sursa (job #2836188)
#include <fstream>
using namespace std;
int n, m, i1, i2, j1, j2, L, len, k, p, lat, i, j, r[10][510][510], E[510];
int main() {
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
fin >> n >> m;
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
fin >> r[0][i][j];
}
}
for (p = 1; lat <= n; p++) {
lat = (1 << p);
for (i1 = 1; i1 <= n - lat + 1; i1++) {
for (j1 = 1; j1 <= n - lat + 1; j1++) {
i2 = i1 + lat / 2;
j2 = j1 + lat / 2;
r[p][i1][j1] = max(max(r[p - 1][i1][j1], r[p - 1][i2][j1]), max(r[p - 1][i1][j2], r[p - 1][i2][j2]));
}
}
}
for (i = 2; i <= n; i++) {
E[i] = 1 + E[i / 2];
}
for (; m; m--) {
fin >> i1 >> j1 >> L;
k = E[L];
len = (1 << k);
i2 = i1 + L - len;
j2 = j1 + L - len;
fout << max(max(r[k][i1][j1], r[k][i1][j2]), max(r[k][i2][j1], r[k][i2][j2])) << "\n";
}
return 0;
}