Pagini recente » Cod sursa (job #2757788) | Cod sursa (job #2810131) | Cod sursa (job #1736305) | Cod sursa (job #1109891) | Cod sursa (job #1689020)
#include <cstdio>
#define DIM 550
#define lgDIM 11
using namespace std;
int v[DIM][DIM][lgDIM];
int log[DIM];
int maxim( int a, int b ){
if( a < b ) return b;
return a;
}
int main()
{
freopen("plantatie.in","r",stdin);
freopen("plantatie.out","w",stdout);
int n, m, i, j, s, t, d, k, p;
int x, y;
scanf("%d%d",&n,&m);
for( i = 1; i <= n; ++i ){
for( j = 1; j <= n; ++j ) scanf("%d",&v[i][j][0]);
}
log[1] = 0;
for( i = 2; i <= n; ++i )
log[i] = 1 + log[i/2];
for( k = 1; (1<<k) <= n; ++k ){
for( i = 1; i + (1<<k) - 1 <= n; ++i ){
for( j = 1; j + (1<<k) - 1 <= n; ++j ){
p = 1<<(k-1);
v[i][j][k] = maxim( maxim( v[i][j][k-1], v[i+p][j+p][k-1] ),
maxim( v[i][j+p][k-1], v[i+p][j][k-1] )
);
}
}
}
for( i = 1; i <= m; ++i ){
scanf("%d%d%d",&x,&y,&k);
s = log[k];
p = k - (1<<s);
d = maxim( maxim( v[x][y][s], v[x+p][y][s] ),
maxim( v[x][y+p][s], v[x+p][y+p][s] )
);
printf("%d\n",d);
}
return 0;
}