Pagini recente » Cod sursa (job #1737123) | Cod sursa (job #1153879) | Cod sursa (job #972491) | Cod sursa (job #703428) | Cod sursa (job #2860769)
#include <bits/stdc++.h>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int d[505][505][15],n,x,y,m,col,lin,lg,sol;
int mx(int a,int b,int c,int d)
{
int mx=a;
if(b>mx) mx=b;
if(c>mx) mx=c;
if(d>mx) mx=d;
}
int main()
{
int i,j,l;
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) f>>d[i][j][0];
for(l=1;(1<<l)<=n;l++)
for(i=1;i+(1<<(l-1))<=n;i++)
for(j=1;j+(1<<(l-1))<=n;j++)
{
d[i][j][l]=mx(d[i][j][l-1],d[i][j+(1<<(l-1))][l-1],d[i+(1<<(l-1))][j][l-1],d[i+(1<<(l-1))][j+(1<<(l-1))][l-1]);
}
for(i=1;i<=m;i++)
{
f>>x>>y>>l;
lg=log2(l);
col=y+l-1;
lin=x+l-1;
sol=mx(d[x][y][lg],d[x][col-(1<<lg)+1][lg],d[lin-(1<<lg)+1][y][lg],d[lin-(1<<lg)+1][col-(1<<lg)+1][lg]);
g<<sol<<'\n';
}
return 0;
}