Pagini recente » Cod sursa (job #1964522) | Cod sursa (job #1606527)
#include <fstream>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int R[505][505][9],N,M;
int logs(int a){
return trunc(log2(a));
}
int querry(int i,int j,int k){
int l = logs(k);
return max(R[i][j][l],max(R[i][j+k-(1<<l)][l],max(R[i+k-(1<<l)][j][l],R[i+k-(1<<l)][j+k-(1<<l)][l])));
}
int main(){
fin >> N >> M;
for(int i = 1;i<=N;i++)
for(int j = 1;j<=N;j++)
fin >> R[i][j][0];
for(int l = 1;l<=9;l++)
for(int i = 1;i<=N-(1<<l)+1;i++)
for(int j = 1;j<=N-(1<<l)+1;j++){
R[i][j][l] = max(R[i][j][l-1],max(R[i][j+(1<<(l-1))][l-1],max(R[i+(1<<(l-1))][j][l-1],R[i+(1<<(l-1))][j+(1<<(l-1))][l-1])));
}
for(int i = 1,x,y,k;i<=M;i++){
fin >> x >> y >> k;
fout << querry(x,y,k) << '\n';
}
return 0;
}