Pagini recente » Cod sursa (job #737054) | Cod sursa (job #305427) | Cod sursa (job #2539864) | Cod sursa (job #1520936) | Cod sursa (job #2021376)
#include <fstream>
#include <iostream>
using namespace std;
ifstream si("plantatie.in");
ofstream so("plantatie.out");
const int NMAX=505;
const int LGMAX=10;
int v[NMAX][NMAX][LGMAX],lg[NMAX];
int main()
{
int n,m;
si>>n>>m;
for(int i=2;i<=n;i++)
lg[i]=lg[i/2]+1;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
si>>v[i][j][0];
for(int k=1;(1<<k)<=n;k++)
for(int i=1;i+(1<<(k-1))<=n;i++)
for(int j=1;j+(1<<(k-1))<=n;j++)
v[i][j][k]=max(max(v[i][j][k-1],
v[i+(1<<(k-1))][j][k-1]),
max(v[i][j+(1<<(k-1))][k-1],
v[i+(1<<(k-1))][j+(1<<(k-1))][k-1]));
int x,y,z,l,c,ln;
for(int i=1;i<=m;i++)
{
si>>x>>y>>z;
l=z+x;
c=z+y;
ln=lg[z];
so<<max(max(v[x][y][ln],
v[l-(1<<ln)][y][ln]),
max(v[x][c-(1<<ln)][ln],
v[l-(1<<ln)][c-(1<<ln)][ln]))<<'\n';
}
}