Pagini recente » Borderou de evaluare (job #1034835) | Borderou de evaluare (job #1034832) | Cod sursa (job #3005360) | Cod sursa (job #300380) | Cod sursa (job #3161482)
#include <fstream>
#define DIM 501
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int n,q,x,y,l,i1,j1,i2,j2,k,len,e[DIM],r[9][DIM][DIM];
int main() {
fin>>n>>q;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
fin>>r[0][i][j];
for (int p=1,k=2;k<=n;p++,k*=2)
for (int i1=1;i1<=n-k+1;i1++)
for (int j1=1;j1<=n-k+1;j1++) {
i2=i1+k/2;
j2=i1+k/2;
r[p][i1][j1]=max(max(r[p-1][i1][j1],r[p-1][i2][j1]),
max(r[p-1][i1][j2],r[p-1][i2][j2]));
}
e[1]=0;
for (int i=2;i<=n;i++)
e[i]=e[i/2]+1;
while (q--) {
fin>>i1>>j1>>len;
k=e[l];
i2=i1+len-(1<<k);
j2=j1+len-(1<<k);
fout<<max(max(r[k][i1][j1],r[k][i1][j2]),
max(r[k][i2][j1],r[k][i2][j2]))<<"\n";
}
return 0;
}