Pagini recente » Cod sursa (job #939111) | Cod sursa (job #1921501) | Cod sursa (job #3214915) | Cod sursa (job #3275790) | Cod sursa (job #3294126)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
int rmq[501][501][11];
int log[501];
int n,q;
int main()
{
fin>>n>>q;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
fin>>rmq[i][j][0];
}
}
log[1]=0;
for(int i=2;i<=n;i++){
log[i]=log[i/2]+1;
}
//implementam
for(int l=1;l<=log[n];l++){
int p=(1<<(l-1));
for(int i=(1<<l);i<=n;i++){
for(int j=(1<<l);j<=n;j++){
rmq[i][j][l]=max(max(rmq[i-p][j][l-1], rmq[i-p][j-p][l-1]), max(rmq[i][j][l-1],rmq[i][j-p][l-1]));
}
}
}
for(int i=1;i<=q;i++){
int l,c,d;
fin>>l>>c>>d;
int g=log[d];
int p=g;
fout<<max(max(rmq[l+p-1][c+p-1][g],rmq[l+d-1][c+p-1][g]),max(rmq[l+p-1][c+d-1][g],rmq[l+d-1][c+d-1][g]))<<'\n';
}
return 0;
}