Pagini recente » Cod sursa (job #2483139) | Cod sursa (job #1375620) | Cod sursa (job #1815260) | Cod sursa (job #530232) | Cod sursa (job #1691909)
#include <cstdio>
using namespace std;
int r[503][503][9],log[505];
int ma(int a,int b,int c,int d)
{
if(a<b)a=b;
if(c<d)c=d;
if(a<c)return c;
return a;
}
int main()
{freopen("plantatie.in","r",stdin);
freopen("plantatie.out","w",stdout);
int i,j,n,m,p,k,t,f,h,a,b;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&(r[i][j][0]));
log[1]=0;
for(i=2;i<=504;i++)
log[i]=log[i/2]+1;
for(h=1;h<=log[n];h++)
for(i=1<<h;i<=n;i++)
for(j=1<<h;j<=n;j++)
{
k=(1<<h-1);
r[i][j][h]=ma(r[i][j][h-1],r[i-k][j][h-1],r[i][j-k][h-1],r[i-k][j-k][h-1]);
}
/*
for(f=0;f<=log[n];f++)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d ",r[i][j][f]);
}printf("\n");
}printf("\n\n\n\n\n");
}
*/
for(f=0;f<m;f++)
{
scanf("%d%d%d",&a,&b,&t);
k=log[t];
a=a+t-1;
b=b+t-1;
p=ma(r[a][b][k],r[a-(1<<k)][b][k],r[a][b-(1<<k)][k],r[a-(1<<k)][b-(1<<k)][k]);
printf("%d\n",p);
}
return 0;
}