Pagini recente » Cod sursa (job #343875) | Cod sursa (job #2574712) | Cod sursa (job #721748) | Cod sursa (job #2569652) | Cod sursa (job #1047932)
#include<fstream>
#include<algorithm>
#include<cmath>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,nr,a[501][501],m[501][501][8],i,j,l,k,r,x,y,h;
int maxim(int a,int b,int c, int d)
{
int bla1,bla2;
bla1=max(a,b);bla2=max(c,d);
return max(bla1,bla2);
}
int rmq(int a,int b,int k)
{
h=log2(k);
return maxim(m[a][b][h],m[a+h][b][h],m[a][b+h][h],m[a+h][b+h][h]);
}
int main()
{
f>>n>>nr;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
f>>a[i][j];
m[i][j][0]=a[i][j];
}
// g<<"TEST: "<<"4 4 : "<<(4+1<<1)<<'\n';
for(k=1;1<<k<=n;k++)
for(i=0;i+(1<<k)-1<n;i++)
for(j=0;j+(1<<k)-1<n;j++)
m[i][j][k]=maxim(m[i][j][k-1],m[i][j+(1<<(k-1))][k-1],m[i+(1<<(k-1))][j][k-1],m[i+(1<<(k-1))][j+(1<<(k-1))][k-1]);
/* for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
for(k=0;k<=3&&i+(1<<k)-1<n&&j+(1<<k)-1<n;k++)
g<<a[i][j]<<"{"<<k<<"}"<<"|"<<m[i][j][k]<<"| ";
g<<'\n';
} */
for(i=1;i<=nr;i++)
{
f>>x>>y>>r;
g<<rmq(x-1,y-1,r)<<'\n';
}
// g<<m[0][0][3]<<" ";
f.close();g.close();
return 0;
}