Pagini recente » Cod sursa (job #986366) | Cod sursa (job #2570471) | Cod sursa (job #845200) | Cod sursa (job #301358) | Cod sursa (job #2825014)
#include<fstream>
#define N 502
using namespace std;
ifstream cin("plantatie.in");
ofstream cout("plantatie.out");
int R[12][N][N], Log[N+1], n, k;
void ConstructQuery(){
for(int lg = 1; lg<=Log[n]; lg++){
for(int i=1; i<=n-(1<<lg)+1; i++){
for(int j=1; j<=n-(1<<lg)+1; j++){
int z = (1<<(lg-1));
R[lg][i][j] = max( max( R[lg-1][i][j], R[lg-1][i+z][j]), max(R[lg-1][i+z][j+z], R[lg-1][i][j+z]));
}
}
}
}
int main(){
cin >> n >> k;
for(int i=2; i<=n; i++){
Log[i] = Log[i/2] + 1;
}
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
cin >> R[0][i][j];
ConstructQuery();
for(int i=1; i<=k; i++){
int lt, x, y;
cin >> x >> y >> lt;
int sz = (1<<Log[lt]), mx;
mx = max( max(R[Log[lt]][x][y],R[Log[lt]][x+lt-sz][y]), max(R[Log[lt]][x][y+lt-sz], R[Log[lt]][x+lt-sz][y+lt-sz]));
cout << mx << "\n";
}
}