Pagini recente » Cod sursa (job #2345308) | Cod sursa (job #3276213) | Cod sursa (job #505774) | Cod sursa (job #2506011) | Cod sursa (job #2606682)
#include <bits/stdc++.h>
using namespace std;
int rmq[9][501][501];
int main()
{
int n,m,k,i,r,j,l,cm,rMax;
freopen("plantatie.in","r",stdin);
freopen("plantatie.out","w",stdout);
scanf("%d%d", &n, &m);
cm=m;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
scanf("%d", &rmq[0][i][j]);
rMax=log2(n);
for (r=1,l=1;r<=rMax;r++,l*=2)
for (i=1;i<=n-2*l+1;i++)
for (j=1;j<=n-2*l+1;j++)
rmq[r][i][j]=max(max(rmq[r-1][i][j],rmq[r-1][i+l][j]),max(rmq[r-1][i][j+l],rmq[r-1][i+l][j+l]));
for (k=1;k<=cm;k++){
scanf("%d%d%d", &i, &j, &l);
r=log2(l);
m=1<<r;
printf("%d\n", max(max(rmq[r][i][j],rmq[r][i+l-m][j+l-m]),max(rmq[r][i+l-m][j],rmq[r][i][j+l-m])));
}
return 0;
}