Pagini recente » Cod sursa (job #2547497) | Cod sursa (job #2126888) | Cod sursa (job #316557) | Cod sursa (job #1978706) | Cod sursa (job #2851101)
#include <fstream>
using namespace std;
int r[9][501][501],log2[501];
int max1(int a,int b,int c,int d){
return max(max(a,b),max(c,d));
}
int main(){
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int n,m,i,j,lat,c,p,l;
fin>>n>>m;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
fin>>r[0][i][j];
}
}
for(l=1;(1<<l)<=n;l++){
for(i=(1<<l);i<=n;i++){
for(j=(1<<l);j<=n;j++){
lat=(1<<(l-1));
r[l][i][j]=max1(r[l-1][i-lat][j-lat],r[l-1][i-lat][j],r[l-1][i][j-lat],r[l-1][i][j]);
}
}
}
for(i=2;i<=n;i++){
log2[i]=1+log2[i/2];
}
for(i=1;i<=m;i++){
fin>>l>>c>>lat;
l+=lat-1;
c+=lat-1;
p=log2[lat];
lat-=(1<<p);
fout<<max1(r[p][l-lat][c-lat],r[p][l-lat][c],r[p][l][c-lat],r[p][l][c])<<"\n";
}
return 0;
}