Pagini recente » Cod sursa (job #1997561) | Cod sursa (job #21532)
Cod sursa(job #21532)
#include <fstream>
#include <math.h>
#include <iomanip>
using namespace std;
long p[1030][1030][10];
long n,m,i,j,k,t,p2,f,x1,x2,k2,r;
int main (){
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
fin>>n>>m;
for (i=1; i<=n; i++)
for (j=1; j<=n;j++) fin>>p[i][j][0];
for (k=1;k<=9;k++){
f=1<<(k-1);
for (i=1; i<=n; i++)
for (j=1; j<=n;j++){
r=p[i][j][k-1];x1=i+f; x2=j+f;k2=k-1;
if (p[i][x2][k2]>r) r=p[i][x2][k2];
if (p[x1][j][k2]>r) r=p[x1][j][k2];
if (p[x1][x2][k2]>r) r=p[x1][x2][k2];
p[i][j][k]=r;
}
}
for (t=1;t<=m;t++){
fin>>i>>j>>k;
p2=(int)(log((float)k)/log(2.0)); f=1<<p2;
r=p[i][j][p2];x1=i+k-f; x2=j+k-f;
if (p[i][x2][p2]>r) r=p[i][x2][p2];
if (p[x1][j][p2]>r) r=p[x1][j][p2];
if (p[x1][x2][p2]>r)r=p[x1][x2][p2];
fout<<r<<"\n";
}
fin.close(); fout.close();
}