Pagini recente » Cod sursa (job #1571883) | Cod sursa (job #887625) | Cod sursa (job #1104043) | Cod sursa (job #2088883) | Cod sursa (job #2849840)
#include <fstream>
using namespace std;
int r[9][501][501],log2[501];
int maxx(int a,int b,int c,int d)
{
return max(max(a,b),max(c,d));
}
int main()
{
ifstream cin("plantatie.in");
ofstream cout("plantatie.out");
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>r[0][i][j];
for(int l=1;(1<<l)<=n;l++)
for(int i=(1<<l);i<=n;i++)
for(int j=(1<<l);j<=n;j++)
{
int lat=(1<<(l-1));
r[l][i][j]=maxx(r[l-1][i-lat][j-lat],r[l-1][i-lat][j],r[l-1][i][j-lat],r[l-1][i][j]);
}
for(int i=2;i<=n;i++)
log2[i]=1+log2[i/2];
int l,c,lat;
for(int i=1;i<=q;i++)
{
cin>>l>>c>>lat;
l+=lat-1,c+=lat-1;
int e=log2[lat];
lat-=(1<<e);
cout<<maxx(r[e][l-lat][c-lat],r[e][l-lat][c],r[e][l][c-lat],r[e][l][c])<<'\n';
}
return 0;
}