Pagini recente » Cod sursa (job #284436) | Cod sursa (job #683824) | Cod sursa (job #392069) | Cod sursa (job #2139872) | Cod sursa (job #2855719)
#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int n,i,j,k,q,l;
int rmq[505][505][10],l2[505];
int query(int i, int j, int k)
{
int l=l2[k];
return max(rmq[i][j][l],rmq[i][j+k-(1<<l)][l],rmq[i+k-(1<<l)][j][l],rmq[i+k-(1<<l)][j+k-(1<<l)][l])
}
signed main()
{
fin>>n>>q;
for(i=2;i<=n;i++)l2[i]=l2[i>>1]+1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fin>>rmq[i][j][0];
for(l=1;l<9;l++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(min(n-i+1,n-j+1)<=(1<<l))
rmq[i][j][l]=max(rmq[i][j][l-1],rmq[i][j+(1<<(l-1))][l-1],rmq[i+(1<<(l-1))][j][l-1],rmq[i+(1<<(l-1))][j+(1<<(l-1))][l-1]);
while(q--)
{
fin>>i>>j>>k;
fout<<query(i,j,k)<<'\n';
}
return 0;
}