Pagini recente » Cod sursa (job #3164342) | Cod sursa (job #468878) | Cod sursa (job #2075227) | Cod sursa (job #2203236) | Cod sursa (job #2323605)
#include<bits/stdc++.h>
#define N 505
using namespace std;
int d[N][N][10];
int n,q;
int LOG[510];
int main() {
ifstream cin("plantatie.in");
ofstream cout("plantatie.out");
cin>>n>>q;
for (int i=1; i<=n; ++i) {
for (int j=1; j<=n; ++j) cin>>d[i][j][0];
}
for (int i=2; i<=N-5; ++i) LOG[i]=LOG[i>>1]+1;
for (int k=1; (1<<k)<=n; ++k) {
for (int i=1; i<=n && i+k-1<=n; ++i) {
for (int j=1; j<=n && j+k-1<=n; ++j) {
d[i][j][k]=max(max(d[i][j][k-1],d[i+(1<<(k-1))][j][k-1]), max(d[i][j+(1<<(k-1))][k-1], d[i+(1<<(k-1))][j+(1<<(k-1))][k-1]));
}
}
}
while (q--) {
int i,j,k; cin>>i>>j>>k;
int p=LOG[k];
cout<<max(max(d[i][j][p], d[i+k-(1<<p)][j][p]), max(d[i][j+k-(1<<p)][p], d[i+k-(1<<p)][j+k-(1<<p)][p]))<<'\n';
}
return 0;
}