Pagini recente » Cod sursa (job #36744) | Cod sursa (job #34302) | Cod sursa (job #37050) | Cod sursa (job #2882390) | Cod sursa (job #3254225)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
int r[10][505][505],e[505],i,p,j,jj2,jj1,i1,i2,n,m,lat,L,k;
int main()
{
fin>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++) fin>>r[0][i][j];
for (p=1,lat=2;lat<=n;p++,lat*=2)
for (i1=1;i1<=n;i1++)
for(jj1=1;jj1<=n;jj1++)
{
i2=i1+(lat>>1);
jj2=jj1+(lat>>1);
r[p][i1][jj1]=max(max(r[p-1][i1][jj1],r[p-1][i2][jj1]),max(r[p-1][i1][jj2],r[p-1][i2][jj2]));
}
e[1]=0;
//fout<<"test";
for (i=2;i<=n;i++) e[i]=1+e[i/2];
while (m)
{
fin>>i1>>jj1>>L;
k=e[L];
lat=(1<<k);
i2=i1+L-lat;
jj2=jj1+L-lat;
cout<<max(max(r[k][i1][jj1],r[k][i2][jj2]), max(r[k][i2][jj1],r[k][i2][jj2]))<<"\n";
m--;
}
return 0;
}