Pagini recente » Cod sursa (job #1173077) | Cod sursa (job #1441216) | Cod sursa (job #2656858) | Cod sursa (job #2825226) | Cod sursa (job #1169369)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream is("plantatie.in");
ofstream os("plantatie.out");
int N, T, D[501][501][10];
int x,y,z;
int main()
{
is >> N >> T;
for ( int i = 1; i <= N; ++i )
for ( int j = 1; j <= N; ++j )
is >> D[i][j][0];
for ( int k = 1; ( 1 << k ) <= N; ++k )
for ( int i = 1; i + ( 1 << (k-1) ) <= N+1; ++i )
for ( int j = 1; j + ( 1 << (k-1) ) <= N+1; ++j )
D[i][j][k] = max(max(D[i][j][k-1],D[i+(1<<(k-1))][j][k-1]),max(D[i+(1<<(k-1))][j+(1<<(k-1))][k-1],D[i][j+(1<<(k-1))][k-1]));
int it, step;
for ( int i = 1; i <= T; ++i )
{
is >> x >> y >> z;
it = 0;
for ( step = 1; step <= z; step <<= 1, ++it);
it -= 1;
step/=2;
os << max( max(D[x][y+z-step][it],D[x][y][it]),max(D[x+z-step][y+z-step][it],D[x+z-step][y][it]) )<<'\n';
}
return 0;
}