Pagini recente » Cod sursa (job #2901666) | Cod sursa (job #1751087) | Cod sursa (job #2479426) | Cod sursa (job #130650) | Cod sursa (job #2369413)
#include <fstream>
#define MAXN 500
using namespace std;
ifstream cin( "plantatie.in" );
ofstream cout( "plantatie.out" );
int rmq[MAXN+5][MAXN+5][10];
int log2[MAXN+5];
int main()
{
int n, m;
cin>>n>>m;
for( int i=1;i<=n;i++ )
for( int j=1;j<=n;j++ )
cin>>rmq[i][j][0];
for( int i=2;i<=n;i++ )
log2[i]=log2[i/2]+1;
for( int i=1;i<=n;i++ )
for( int j=1;j<=n;j++ )
for( int l=1;i<=n-(1<<l)+1 && j<=n-(1<<l)+1;l++ )
rmq[i][j][l]=max(max(rmq[i][j][l-1],
rmq[i+(1<<(l-1))][j][l-1]),
max(rmq[i][j+(1<<(l-1))][l-1],
rmq[i+(1<<(l-1))][j+(1<<(l-1))][l-1]));
while( m-- )
{
int x, y, k;
cin>>x>>y>>k;
int l=log2[k];
cout<<max(max(rmq[x][y][log2[k]],
rmq[(x+k)-(1<<log2[k])][y][log2[k]]),
max(rmq[x][(y+k)-(1<<log2[k])][log2[k]],
rmq[(x+k)-(1<<log2[k])][(y+k)-(1<<log2[k])][log2[k]]))<<"\n";
}
return 0;
}