Pagini recente » Cod sursa (job #3251138) | Cod sursa (job #495787) | Cod sursa (job #677587) | Cod sursa (job #3257040) | Cod sursa (job #1021729)
#include<fstream>
using namespace std;
const int p2[10]={1,2,4,8,16,32,64,128,256,512};
int a[501][501][10],n,m;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
void citire()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
fin>>a[i][j][0];
}
}
}
void rmq()
{
for(int k=1;p2[k]<=n;k++)
{
for(int i=p2[k];i<=n;i++)
{
for(int j=p2[k];j<=n;j++)
{
a[i][j][k]=max(max(a[i][j][k-1],
a[i-p2[k-1]][j-p2[k-1]][k-1]),
max(a[i-p2[k-1]][j][k-1],
a[i][j-p2[k]][k-1]));
}
}
}
}
void queries()
{
int x,y,k,t,xf,yf;
for(int i=1;i<=m;i++)
{
fin>>x>>y>>k;
xf=x+k-1;
yf=y+k-1;
t=0;
while(p2[t]<=k)
{
t++;
}
t--;
fout<<max(max(a[xf][yf][t],a[xf][y+p2[t]][t]),max(a[x+p2[t]][yf][t],a[x+p2[t]][y+p2[t]][t]))<<"\n";
}
}
int main()
{
citire();
rmq();
queries();
return 0;
}