Pagini recente » Cod sursa (job #2277383) | Cod sursa (job #2557019) | Cod sursa (job #1865939) | Cod sursa (job #2841758) | Cod sursa (job #825857)
Cod sursa(job #825857)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,S[505][505][9],p,P,i,j,k,x,y,z,a,b;
int main()
{
freopen("plantatie.in","r",stdin);
freopen("plantatie.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) scanf("%d",&S[i][j][0]);
for(k=1;(1<<k)<=n;k++)
for(i=1;i<=n-(1<<k)+1;i++)
for(j=1;j<=n-(1<<k)+1;j++)
{
p=1<<(k-1);
a=max(S[i][j][k-1],S[i+p][j][k-1]);
b=max(S[i][j+p][k-1],S[i+p][j+p][k-1]);
S[i][j][k]=max(a,b);
}
for(;m;m--)
{
scanf("%d%d%d",&x,&y,&z);
for(k=0,p=1;(p<<1)<=z;p<<=1,k++);
P=z-(1<<k);
a=max(S[x][y][k],S[x+P][y][k]);
b=max(S[x][y+P][k],S[x+P][y+P][k]);
printf("%d\n",max(a,b));
}
return 0;
}