Pagini recente » Cod sursa (job #625572) | Cod sursa (job #2463756) | Cod sursa (job #2518686) | Cod sursa (job #3221473) | Cod sursa (job #3161709)
#include <fstream>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int r[11][1501][1501],n,m,x,y,z,e[1001];
int maxim(int a,int b)
{
if(a<b)
return b;
return a;
}
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++){
int nx=n-(1<<p)+1;
for(int i=1;i<=nx;i++)
{
for(int j=1;j<=nx;j++)
{
int l=i+(1<<(p-1));
int c=j+(1<<(p-1));
r[p][i][j]=r[p-1][i][j];
r[p][i][j]=maxim(r[p][i][j],r[p-1][l][j]);
r[p][i][j]=maxim(r[p][i][j],r[p-1][i][c]);
r[p][i][j]=maxim(r[p][i][j],r[p-1][l][c]);
}
}
}
e[1]=0;
for(int i=2;i<=n;i++)
e[i]=e[i/2]+1;
for(int i=1;i<=m;i++)
{
fin>>x>>y>>z;
int p=e[z];
int l=x+z;
int c=y+z;
int len=(1<<p);
fout<<maxim(r[p][x][y],maxim(r[p][l-len][y],maxim(r[p][i][c-len],r[p][l-len][c-len])))<<"\n";
}
return 0;
}