Pagini recente » Cod sursa (job #1471677) | Cod sursa (job #2236916) | Cod sursa (job #461210) | Cod sursa (job #1617901) | Cod sursa (job #622483)
Cod sursa(job #622483)
# include <fstream>
# include <iostream>
# define DIM 502
# define max(a,b) (a>b?a:b)
using namespace std;
int n, m, a[10][DIM][DIM];
ifstream fin ("plantatie.in");
void read ()
{
fin>>n>>m;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
fin>>a[0][i][j];
}
void comp ()
{
for(int k=1;(1<<k)<=n;++k)
for(int i=1;i+(1<<k)-1<=n;++i)
for(int j=1;j+(1<<k)-1<=n;++j)
a[k][i][j]=max( max(a[k-1][i][j],a[k-1][i+(1<<(k-1))][j+(1<<(k-1))]), max(a[k-1][i][j+(1<<(k-1))],a[k-1][i+(1<<(k-1))][j]));
}
int query (int i, int j, int k)
{
int K=10;
while (K>-1 && (1<<K)>k)--K;
return max( max(a[K][i][j], a[K][i+k-(1<<K)][j+k-(1<<K)]), max(a[K][i][j+k-(1<<K)],a[k][i+k-(1<<K)][j]));
}
int main ()
{
read ();
comp ();
freopen("plantatie.out", "w", stdout);
for(int i, j, k;m--;)
{
fin>>i>>j>>k;
printf("%d\n", query(i,j,k));
}
return 0;
}