Pagini recente » Cod sursa (job #2914065) | Cod sursa (job #1960088) | Cod sursa (job #3032865) | Cod sursa (job #444198) | Cod sursa (job #1081958)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("plantatie.in");
ofstream fo("plantatie.out");
int a[12][512][512],k,q,n,m,x,y;
inline int maxim(int x,int y) {return x>y?x:y;}
int main() {
fi>>n>>m;
for (int i=0;i<n;++i)
for (int j=0;j<n;++j)
fi>>a[0][i][j];
for (int k=1;(1<<k)<=n;++k)
for (int i=0;i<=n;++i)
for (int j=0;j<=n;++j)
a[k][i][j]=maxim(maxim(a[k-1][i][j],a[k-1][i+(1<<(k-1))][j]),maxim(a[k-1][i][j+(1<<(k-1))],a[k-1][i+(1<<(k-1))][j+(1<<(k-1))]));
for (int i=1;i<=m;++i) {
fi>>x>>y>>k;
q=1;x--;y--;
int nr=0;
while (q<=k) {
nr++;
q*=2;
}
q/=2;nr--;
fo<<maxim(maxim(a[nr][x][y],a[nr][x+k-q][y]),maxim(a[nr][x][y+k-q],a[nr][x+k-q][y+k-q]))<<'\n';
}
return 0;
}