Pagini recente » Cod sursa (job #1241861) | Cod sursa (job #1419324) | Cod sursa (job #106139) | Cod sursa (job #2705700) | Cod sursa (job #1766370)
#include <bits/stdc++.h>
using namespace std;
int n,m,i,Log[510],a[20][510][510],A,B,C,D,x,y,z,j,k,aux;
int main()
{
freopen("plantatie.in","r",stdin);
freopen("plantatie.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=2; i<=n; ++i)
Log[i]=Log[i/2]+1;
for(i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
scanf("%d",&a[0][i][j]);
for(i=1; i<=Log[n]; ++i)
for(j=1; j<=n; ++j)
for(k=1; k<=n; ++k)
{
aux=(1<<(i-1));
A=a[i-1][j][k];
B=a[i-1][j-aux][k];
C=a[i-1][j][k-aux];
D=a[i-1][j-aux][k-aux];
a[i][j][k]=max(max(A,B),max(C,D));
}
++m;
while(--m)
{
scanf("%d%d%d",&x,&y,&z);
x+=z-1;
y+=z-1;
aux=z-(1<<Log[z]);
A=a[Log[z]][x][y];
B=a[Log[z]][x-aux][y];
C=a[Log[z]][x][y-aux];
D=a[Log[z]][x-aux][y-aux];
printf("%d\n",max(max(A,B),max(C,D)));
}
return 0;
}