Pagini recente » Cod sursa (job #1606961) | Cod sursa (job #1693323) | Cod sursa (job #584586) | Cod sursa (job #1655699) | Cod sursa (job #2977939)
#include <bits/stdc++.h>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,m,a[502],r[10][1000][1000];
void constr()
{
int lat=2,p;
for(p=1;lat<=n;p++,lat=lat*2)
{
for(int i1=1;i1<=n-lat+1;i1++)
{
for(int j1=1;j1<=n-lat+1;j1++)
{
int i2=i1+lat/2;
int j2=j1+lat/2;
r[p][i1][j1]=max(r[p-1][i1][j1],max(r[p-1][i2][j1],max(r[p-1][i1][j2],r[p-1][i2][j2])));
}
}
}
}
int qu(int i,int j,int l)
{
int k=a[l];
int len=(1<<k);
int i2=i+l-len;
int j2=j+l-len;
return max(max(r[k][i][j],r[k][i2][j2]),max(r[k][i][j2],r[k][i2][j]));
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
f>>n>>m;
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>r[0][i][j];
constr();
a[1]=0;
for(i=2;i<=n;i++)
a[i]=1+a[i/2];
while(m)
{
int l;
f>>i>>j>>l;
g<<qu(i,j,l)<<'\n';
m--;
}
return 0;
}