Pagini recente » Cod sursa (job #1603191) | Cod sursa (job #781820) | Cod sursa (job #2566622) | Cod sursa (job #1692588) | Cod sursa (job #2847075)
#define boostIO ios_base::sync_with_stdio(false); fin.tie(nullptr); fout.tie(nullptr);
#pragma GCC optimize ("Ofast")
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
const int MAX_N = 505;
int lg2[MAX_N];
int rmq[MAX_N][MAX_N][10];
int n;
int q, x, y, xx, yy, l;
int main (){
boostIO
lg2[0] = lg2[1] = 0;
for(int i=2; i<=500; i++)
lg2[i] = lg2[(i>>1)] + 1;
fin>>n>>q;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
fin>>rmq[i][j][0];
for(int k=1; k<=lg2[n]; k++)
for(int i=1; i+(1<<k)-1 <= n; i++)
for(int j=1; j+(1<<k)-1 <= n; j++)
rmq[i][j][k] = max({
rmq[i][j][k-1],
rmq[i][j+(1<<(k-1))][k-1],
rmq[i+(1<<(k-1))][j][k-1],
rmq[i+(1<<(k-1))][j+(1<<(k-1))][k-1]
});
while(q--){
fin>>x>>y>>l;
xx = x + l - (1 << lg2[l]);
yy = y + l - (1 << lg2[l]);
fout<<max({
rmq[x][y][ lg2[l] ],
rmq[x][yy][ lg2[l] ],
rmq[xx][y][ lg2[l] ],
rmq[xx][yy][ lg2[l] ]
});
fout<<"\n";
}
return 0;
}