Pagini recente » Cod sursa (job #918609) | Cod sursa (job #49368) | Cod sursa (job #397457) | Cod sursa (job #2527071) | Cod sursa (job #3124209)
#include <bits/stdc++.h>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,rmq[10][501][501],m;
int main()
{int i,k=0,x,p=1,j,y,l,sol;
f>>n>>m;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
f>>rmq[0][i][j];
while (p<=n)
{
p*=2;
k++;
}
k--;
p=1;
for (x=1;x<=k;x++)
{
for (i=1;i<=n-p*2+1;i++)
for (j=1;j<=n-p*2+1;j++)
rmq[x][i][j]=max(rmq[x-1][i][j],max(rmq[x-1][i+p][j+p],max(rmq[x-1][i+p][j],rmq[x-1][i][j+p])));
p*=2;
}
for (i=1;i<=m;i++)
{
f>>x>>y>>l;
p=1;
k=0;
while(p<=l)
{
p*=2;
k++;
}
k--;
p/=2;
sol=max(rmq[k][x][y],max(rmq[k][x+l-p][y+l-p],max(rmq[k][x+l-p][y],rmq[k][x][y+l-p])));
g<<sol<<'\n';
}
}