Pagini recente » Cod sursa (job #2319750) | Cod sursa (job #251993) | Cod sursa (job #2651929) | Cod sursa (job #3237916) | Cod sursa (job #1450392)
#include <stdio.h>
#define inf 0x3f3f3f3f
#define nmax 100010
using namespace std;
int n,m,i,d,j,k,x,y,z,dp[10][502][502],v[nmax],aux;
inline int max(int a,int b)
{
if (a>b) return a; else return 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",&dp[0][i][j]);
for (k=1;1<<k<=n;k++){
aux=1<<(k-1);
for (i=1;i+aux<=n;i++)
for (j=1;j+aux<=n;j++)
dp[k][i][j]=max(dp[k-1][i][j],max(dp[k-1][i+aux][j],max(dp[k-1][i][j+aux],dp[k-1][i+aux][j+aux])));
}
for (i=2;i<=n;i++) v[i]=v[i/2]+1;
for (i=1;i<=m;i++){
scanf("%d%d%d",&x,&y,&z);
d=v[z]; aux=1<<d;
printf("%d\n",max(dp[d][x][y],max(dp[d][x+z-aux][y+z-aux],max(dp[d][x+z-aux][y],dp[d][x][y+z-aux]))));
}
return 0;
}