Pagini recente » Cod sursa (job #54834) | Cod sursa (job #2901609)
#include <bits/stdc++.h>
using namespace std;
int n,m,rmq[501][501][9],x,y,l,lg[501];
int main(){
ifstream f("plantatie.in");
ofstream g("plantatie.out");
f>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) {
f >> x;
rmq[i][j][0] = x;
}
for(int k=1;k<=9;k++)
for(int i=1;i+(1<<k)-1<=n;i++)
for(int j=1;j+(1<<k)-1<=n;j++)
rmq[i][j][k]=max(max(max(rmq[i][j][k - 1], rmq[i + (1 << (k - 1))][j][k - 1]), rmq[i][j + (1 << (k - 1))][k - 1]), rmq[i + (1 << (k - 1))][j + (1 << (k - 1))][k - 1]) ;
for(int i=2;i<=n;i++)
lg[i]= lg[i / 2] + 1;
for(int i=0;i<m;i++){
f>>x>>y>>l;
g << max(max(max(rmq[x][y][lg[l]], rmq[x][y + l - (1 << lg[l])][lg[l]]), rmq[x + l - (1 << lg[l])][y + l - (1 << lg[l])][lg[l]]), rmq[x + l - (1 << lg[l])][y][lg[l]]) << '\n';
}
return 0;
}