Pagini recente » Cod sursa (job #1875313) | Cod sursa (job #1452653) | Cod sursa (job #1264279) | Cod sursa (job #1783919) | Cod sursa (job #1775561)
#include<cstdio>
int a[501][501];
int r[501][501][9];//log2 de 500=9;
int log[250001];
int main()
{
int n,m,i,j,k,f,l,q,i1,i2,j1,j2;
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",&r[i][j][0]);
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
for(k=1;(1<<k)<=i && (1<<k)<=j;k++)
{
r[i][j][k]=r[i][j][k-1];
if(r[i][j][k]<r[i][j-(1<<(k-1))][k-1])
r[i][j][k]=r[i][j-(1<<(k-1))][k-1];
if(r[i][j][k]<r[i-(1<<(k-1))][j][k-1])
r[i][j][k]=r[i-(1<<(k-1))][j][k-1];
if(r[i][j][k]<r[i-(1<<(k-1))][j-(1<<(k-1))][k-1])
r[i][j][k]=r[i-(1<<(k-1))][j-(1<<(k-1))][k-1];
}
}
}
log[1]=0;
for(i=2;i<=n*n;i++)
{
log[i]=1+log[i/2];
}
for(f=1;f<=m;f++)
{
scanf("%d%d%d",&i,&j,&k);
i1=i;
j1=j;
i2=i+k-1;
j2=j+k-1;
l=log[k];
q=r[i2][j2][l];//dr jos
if(q<r[i2][j1+(1<<l)-1][l])//st jos
q=r[i2][j1+(1<<l)-1][l];
if(q<r[i1+(1<<l)-1][j2][l])//dr sus
q=r[i1+(1<<l)-1][j2][l];
if(q<r[i1+(1<<l)-1][j1+(1<<l)-1][l])//st sus
q=r[i1+(1<<l)-1][j1+(1<<l)-1][l];
printf("%d\n",q);
/*l=log[k];
q=r[ci][cj][l];
if(q<r[ci][cj-(1<<(l-1))][l])
q=r[ci][cj-(1<<(k-1))][k-1];
if(q<r[ci-(1<<(k-1))][cj][k-1])
q=r[ci-(1<<(k-1))][cj][k-1];
if(q<r[ci-(1<<(k-1))][cj-(1<<(k-1))][k-1])
q=r[ci-(1<<(k-1))][cj-(1<<(k-1))][k-1];
printf("%d\n",q);*/
}
return 0;
}