Pagini recente » Cod sursa (job #3191347) | Cod sursa (job #358198) | Cod sursa (job #2390376) | Cod sursa (job #498883) | Cod sursa (job #1280665)
#include<fstream>
using namespace std;
int n,m,i,j,a,ii,l,k,il,jl,p[510],x[11][510][510];
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int maxim(int a,int b){
if(a>b)
return a;
return b;
}
int main(){
fin >> n >> m;
p[1]=0;
for(i=1;i<=509;i++){
p[i]=p[i/2]+1;
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
fin >> x[0][i][j];
}
}
for(i=1;i<=p[n];i++){
a=1<<(i-1);
for(j=1;j<=n;j++){
for(ii=1;ii<=n;ii++){
x[i][j][ii]=maxim( x[i-1][j][ii], maxim( x[i-1][j][ii+a], maxim( x[i-1][j+a][ii], x[i-1][j+a][ii+a] ) ) );
}
}
}
for(l=1;l<=m;l++){
fin >> i >> j >> k;
a=p[k]-1;
fout << maxim( x[a][i][j], maxim( x[a][i+k-(1<<a)][j], maxim( x[a][i][j+k-(1<<a)], x[a][i+k-(1<<a)][j+k-(1<<a)] ) ) ) << '\n';
}
return 0;
}