Pagini recente » Cod sursa (job #1014808) | Cod sursa (job #1279147) | Cod sursa (job #402541) | Cod sursa (job #1900354) | Cod sursa (job #1737540)
#include<cstdio>
#include<algorithm>
#define MAXN 500
#define MAXLOG 12
using namespace std;
int rmq[MAXLOG][MAXN][MAXN],logarithm[MAXN];
int main(){
freopen("plantatie.in","r",stdin);
freopen("plantatie.out","w",stdout);
int n,m,i,j,k,l,limit,x,y,z;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&rmq[0][i][j]);
for(k=1;(1<<k)<=n;k++){
l=(1<<(k-1));
limit=2*l;
for(i=1;i<=n-limit+1;i++)
for(j=1;j<=n-limit+1;j++)
rmq[k][i][j]=max(rmq[k-1][i][j],max(rmq[k-1][i+l][j],max(rmq[k-1][i][j+l],rmq[k-1][i+l][j+l])));
}
for(i=2;i<=n;i++)
logarithm[i]=logarithm[i/2]+1;
for(i=1;i<=m;i++){
scanf("%d%d%d",&x,&y,&z);
l=(1<<logarithm[z]);
k=logarithm[z];
printf("%d\n",max(rmq[k][x][y],max(rmq[k][x][y+z-l],max(rmq[k][x+z-l][y],rmq[k][x+z-l][y+z-l]))));
}
return 0;
}