Pagini recente » Istoria paginii runda/simulare_izho_2 | Cod sursa (job #2151379) | Cod sursa (job #1131041) | Cod sursa (job #1947367) | Cod sursa (job #827570)
Cod sursa(job #827570)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,i,j,k,p,a[510][510][10],sol,x,y,z;
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",&a[i][j][0]);
for(k=1,p=1;2*p<=n;k++,p<<=1)
{
//printf("k = %d\n",k);
for(i=1;i<=n-2*p+1;i++)
{
for(j=1;j<=n-2*p+1;j++)
{
a[i][j][k]=max(max(a[i][j][k-1],a[i+p][j][k-1]),max(a[i][j+p][k-1],a[i+p][j+p][k-1]));
//printf("%d ",a[i][j][k]);
}
//printf("\n");
}
//printf("\n\n");
}
for(;m;--m)
{
scanf("%d %d %d\n",&x,&y,&z);
for(i=0,p=1;2*p<=z;p<<=1,i++);
sol=max(max(a[x][y][i],a[x+z-p][y][i]),max(a[x][y+z-p][i],a[x+z-p][y+z-p][i]));
printf("%d\n",sol);
}
return 0;
}