Pagini recente » Statistici AlexandraCristea (AlexandraCristea) | Cod sursa (job #426544) | Florian Marcu | Istoria paginii probleme-cu-secvente | Cod sursa (job #19989)
Cod sursa(job #19989)
#include <stdio.h>
int i,j,k,q,n,m,x,y,a[12][512][512];
inline int maxim(int x,int y)
{
return x>y?x:y;
}
int main()
{
freopen("plantatie.in","rt",stdin);
freopen("plantatie.out","wt",stdout);
scanf("%d %d",&n,&m);
for (i=0;i<n;++i)
for (j=0;j<n;++j)
scanf("%d ",&a[0][i][j]);
for (k=1;(1<<k)<=n;++k)
for (i=0;i<=n;++i)
for (j=0;j<=n;++j)
a[k][i][j] = maxim( maxim(a[k-1][i][j],a[k-1][i+(1<<(k-1))][j]) , maxim(a[k-1][i][j+(1<<(k-1))],a[k-1][i+(1<<(k-1))][j+(1<<(k-1))]) );
for (i=1;i<=m;++i)
{
scanf("%d %d %d",&x,&y,&k);
q=1;
x--;
y--;
int nr=0;
while (q<=k)
{
nr++;
q*=2;
}
q/=2;
nr--;
printf("%d\n",maxim(maxim(a[nr][x][y],a[nr][x+k-q][y]),maxim(a[nr][x][y+k-q],a[nr][x+k-q][y+k-q])));
}
return 0;
}