Pagini recente » Cod sursa (job #949773) | Cod sursa (job #44165) | Cod sursa (job #2927788) | Cod sursa (job #2306526) | Cod sursa (job #3161688)
#include <fstream>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int r[20][501][501],n,m,x,y,z;
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
fin>>r[0][i][j];
}
for(int p=1;(1<<p)<=n;p++){
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
int l=i+(1<<(p-1));
int c=j+(1<<(p-1));
r[p][i][j]=r[p-1][i][j];
if(l<=n)
{
r[p][i][j]=max(r[p][i][j],r[p-1][l][j]);
}
if(c<=n)
{
r[p][i][j]=max(r[p][i][j],r[p-1][i][c]);
}
if(l<=n && c<=n)
{
r[p][i][j]=max(r[p][i][j],r[p-1][l][c]);
}
}
}
}
for(int i=1;i<=m;i++)
{
fin>>x>>y>>z;
int p=0;
for(p=0;(1<<p)<=z;p++);
p--;
int l=x+z;
int c=y+z;
int len=(1<<p);
fout<<max(r[p][x][y],max(r[p][l-len][y],max(r[p][i][c-len],r[p][l-len][c-len])))<<"\n";
}
return 0;
}