Pagini recente » Cod sursa (job #1821837) | Cod sursa (job #488749) | Cod sursa (job #2057386) | Statistici Muresan Alexandru (malex5) | Cod sursa (job #2682731)
#include <stdio.h>
#include <math.h>
int i,j,k,n,m,l,a[757][757][9],p,mx;
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]);
/* p=0;
while ((1<<p) <= n) p++; */
for (k=1;(1<<k)<=n;++k)
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
{
a[i][j][k]=max(a[i][j][k-1],a[i][j+(1<<(k-1))][k-1]);
a[i][j][k]=max(a[i][j][k],a[i+(1<<(k-1))][j+(1<<(k-1))][k-1]);
a[i][j][k]=max(a[i][j][k],a[i+(1<<(k-1))][j][k-1]);
}
for (i=1;i<=m;++i)
{
scanf("%d %d %d",&i,&j,&k);
/* p=0;
while ((1<<p) <= k) p++;
--p; */
p=log2(k)
mx=max(a[i][j][p],a[i][j+k-(1<<p)][p]);
mx=max(max,a[i+k-(1<<p)][j][p]);
mx=max(max,a[i+k-(1<<p)][j+k-(1<<p)][p]);
printf("%d\n",mx);
}
return 0;
}