Pagini recente » Cod sursa (job #671546) | Cod sursa (job #2086650) | Cod sursa (job #2324700) | Cod sursa (job #2552649) | Cod sursa (job #2066189)
#include <bits/stdc++.h>
using namespace std;
int n, m, k, x, y, rmq[10][1 << 10][1 << 10];
void build(){
int sz = log2(n) + 1, p;
for(int k = 1; k <= sz; k++)
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++){
p = (1 << (k - 1));
rmq[k][i][j] = max({rmq[k-1][i][j], rmq[k-1][i][j+p], rmq[k-1][i+p][j], rmq[k-1][i+p][j+p]});
}
}
int solve(){
int sz = log2(k);
int p = k - (1 << sz);
return max({rmq[sz][x][y], rmq[sz][x+p][y], rmq[sz][x][y+p], rmq[sz][x+p][y+p]});
}
int main(){
ifstream in("plantatie.in");
ofstream out("plantatie.out");
in >> n >> m;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
in >> rmq[0][i][j];
build();
for(int i = 1; i <= m; i++){
in >> x >> y >> k;
out << solve() << '\n';
}
return 0;
}