Pagini recente » Cod sursa (job #1550425) | Cod sursa (job #2450148) | Cod sursa (job #1398041) | Cod sursa (job #990063) | Cod sursa (job #2593008)
#include <fstream>
using namespace std;
ifstream cin("plantatie.in");
ofstream cout("plantatie.out");
int n,t,v[100][100],rmq[9][505][505],log2[505],i,j,k;
int main()
{
cin>>n>>t;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>rmq[0][i][j];
}
}
for(int k=1;(1<<k)<=n;k++){
for(int i=1;i<=n-(1<<k)+1;i++){
for(int j=1;j<=n-(1<<k)+1;j++){
rmq[k][i][j]=max(max(rmq[k-1][i][j],rmq[k-1][i+(1<<k-1)][j]),max(rmq[k-1][i][j+(1<<k-1)],rmq[k-1][i+(1<<k-1)][j+(1<<k-1)]));
}
}
}
for(int i=2;i<=n;i++){
log2[i]=log2[i/2]+1;
}
while(t--){
cin>>i>>j>>k;
cout<<max(max(rmq[log2[k]][i][j],rmq[log2[k]][i+k-(1<<log2[k])][j+k-(1<<log2[k])]),max(rmq[log2[k]][i][j+k-(1<<log2[k])],rmq[log2[k]][i+k-(1<<log2[k])][j]))<<'\n';
}
return 0;
}
/*0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
*/