Pagini recente » Cod sursa (job #564674) | Cod sursa (job #920004) | Cod sursa (job #2601888) | Cod sursa (job #1010612) | Cod sursa (job #3161327)
#include <bits/stdc++.h>
#define log h
#define DIM 501
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int n, query, x, y, x2, y2, len, leni, lenj, lat;
int i, j, p;
int rmq[10][DIM][DIM], log[DIM];
int main(){
fin>>n>>query;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
fin>>rmq[0][i][j];
for(i=2; i<=n; i++)
log[i]=log[i/2]+1;
for(p=1; (1<<p)<=n; p++)
for(i=1; i+(1<<(p-1))<=n; i++)
for(j=1; j+(1<<(p-1))<=n; j++){
leni=i+(1<<(p-1));
lenj=j+(1<<(p-1));
rmq[p][i][j]=max(max(rmq[p-1][i][j], rmq[p-1][leni][j]), max(rmq[p-1][i][lenj], rmq[p-1][leni][lenj]));
}
while(query--){
fin>>x>>y>>lat;
len=(1<<(log[lat]));
x2=x+lat-len;
y2=y+lat-len;
fout<<max(max(rmq[log[len]][x][y], rmq[log[len]][x2][y]), max(rmq[log[len]][x][y2], rmq[log[len]][x2][y2]))<<"\n";
}
}