Pagini recente » Cod sursa (job #2894346) | Cod sursa (job #545575) | Cod sursa (job #925474) | Cod sursa (job #2462305) | Cod sursa (job #3042200)
#include <fstream>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int n,q,r[10][501][501];
int E[501];
int main(){
fin>>n>>q;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
fin>>r[0][i][j];
E[1]=0;
for(int i=2;i<=n;i++)
E[i]=1+E[i/2];
for(int p=1,lat=2;lat<=n;p++,lat*=2)
for(int i=1;i<=n-lat+1;i++)
for(int j=1;j<=n-lat+1;j++){
int i2=i+(lat>>1);
int j2=j+(lat>>1);
r[p][i][j]=max(
max(r[p-1][i][j],r[p-1][i2][j2]),
max(r[p-1][i][j2],r[p-1][i2][j])
);
}
while(q--){
int i,j,L;
fin>>i>>j>>L;
int k=E[L];
int len=(1<<k);
int i2=i+L-len;
int j2=j+L-len;
fout<<max(
max(r[k][i][j],r[k][i2][j2]),
max(r[k][i][j2],r[k][i2][j])
)<<'\n';
}
return 0;
}