Pagini recente » Istoria paginii utilizator/mihnea.anghel | Cod sursa (job #2815037) | Cod sursa (job #773138) | Cod sursa (job #1716566) | Cod sursa (job #2073615)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,a[505][505][10],m,I,J,k,r,h,rez;
void RMQ()
{
for(int k=1;(1<<k)<=n;++k)
{
r=(1<<(k-1)); h=(1<<k);
for(int i=1;i<=n-h+1;++i)
{
for(int j=1;j<=n-h+1;++j)
{
a[i][j][k]=max(a[i][j][k-1],a[i+r][j+r][k-1]);
a[i][j][k]=max(a[i][j][k],a[i+r][j][k-1]);
a[i][j][k]=max(a[i][j][k],a[i][j+r][k-1]);
}
}
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
f>>a[i][j][0];
}
}
RMQ();
for(int i=1;i<=m;++i)
{
f>>I>>J>>k;
r=log2(k);
h=(1<<r);
rez=max(a[I][J][r],a[I+k-h][J+k-h][r]);
rez=max(rez,a[I][J+k-h][r]);
rez=max(rez,a[I+k-h][J][r]);
g<<rez<<'\n';
}
return 0;
}