Pagini recente » Cod sursa (job #2766317) | Cod sursa (job #3254223)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
#define CT 505
int r[10][CT][CT];
int e[CT];
int n,m,i,i1,i2,j,jj1,jj2,lat,p,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;
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;
fout<<max(max(r[k][i1][jj1],r[k][i1][jj2]),max(r[k][i2][jj1],r[k][i2][jj2]));
fout<<'\n';
m--;
}
return 0;
}