Pagini recente » Cod sursa (job #1411173) | Cod sursa (job #2656139) | Cod sursa (job #655603) | Cod sursa (job #1088221) | Cod sursa (job #1951976)
#include <fstream>
#include <cstdio>
using namespace std;
ofstream cout("plantatie.out");
int M[505][505][10],i,j,n,m,nr,l,cx,cy,lat,k;
int main()
{
FILE*fin=freopen("plantatie.in","r",stdin);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&M[0][i][j]);
for(k=1;1<<k<n;++k)
for(i=1; i<= n-(1<<k)+1;++i)
for(j=1; j<= n-(1<<k)+1;j++){
M[k][i][j]=max(M[k-1][i+(1<<(k-1))][j+(1<<(k-1))],max(M[k-1][i][j+((1<<k-1))],max(M[k-1][i][j],M[k-1][i+(1<<(k-1))][j])));
}
for(i=1;i<=m;i++){
scanf("%d%d%d",&cx,&cy,&lat);
for(l=1;1<<l<lat;++l);
--l;
nr=1<<l;
cout<<max(M[l][cx][cy],max(M[l][cx+lat-nr][cy],max(M[l][cx+lat-nr][cy+lat-nr],M[l][cx][cy+lat-nr])))<<'\n';
}
return 0;
}