Pagini recente » Cod sursa (job #1513719) | Cod sursa (job #1886947) | Cod sursa (job #1929326) | Cod sursa (job #1130995) | Cod sursa (job #2145380)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int dp[10][505][505], i, j, n, m, log2[505], l, x, y, w;
int main() {
f >> n >> m;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
f >> dp[0][i][j], log2[i+1] = log2[(i+1)/2]+1;
for (w = 1; (1<<w) <= n; w++) {
for (i = 1; i+(1<<w)-1 <= n; i++)
for (j = 1; j+(1<<w)-1 <= n; j++) {
int ii = i+(1<<(w-1)), jj = j+(1<<(w-1));
dp[w][i][j] = max(max(dp[w-1][i][j], dp[w-1][i][jj]),
max(dp[w-1][ii][j], dp[w-1][ii][jj]));
}
}
while (m--) {
f >> i >> j >> l;
w = log2[l];
int ii = i+l-(1<<w), jj = j+l-(1<<w);
g << max(max(dp[w][i][j], dp[w][ii][jj]),
max(dp[w][ii][j], dp[w][i][jj])) << '\n';
}
return 0;
}