Pagini recente » Cod sursa (job #110360) | Cod sursa (job #36725) | Cod sursa (job #1453127) | Cod sursa (job #36713) | Cod sursa (job #18139)
Cod sursa(job #18139)
#include<stdio.h>
const int maxn2 = 14;
const int maxn = 512;
int a[maxn2][maxn][maxn];
int p,l,x,y;
int n,m;
int i,j,k;
int max(int a,int b)
{
if (a<b) return b;
return a;
}
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[0][i][j]);
}
for(p=1, k = 1;p<=n;p<<=1, k++)
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
int x=i+p;
int y=j+p;
if (x>500) x=500;
if (y>500) y=500;
a[k][i][j]=max(max(a[k-1][i][j],a[k-1][x][j]),max(a[k-1][i][y],a[k-1][x][y]));
}
}
for(i=1;i<=m;i++)
{
scanf("%d %d %d",&x,&y,&l);
for(p=1,k=0;p<=l;p<<=1)
{
k++;
}
k--;
p>>=1;
printf("%d\n",max(max(a[k][x][y],a[k][x+l-p][y]),max(a[k][x][y+l-p],a[k][x+l-p][y+l-p])));
}
return 0;
}