Pagini recente » Cod sursa (job #2330286) | Cod sursa (job #1764971) | Cod sursa (job #155333) | Cod sursa (job #1395354) | Cod sursa (job #1538698)
#include <bits/stdc++.h>
using namespace std;
ifstream in("plantatie.in");
ofstream out ("plantatie.out");
int rmq[10][505][505],lg[505];
int main()
{int i,j,n,m,k,x,y,z;
in>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
in>>rmq[0][i][j];
}
}
for(i=2;i<=n;i++)
lg[i]=lg[i/2]+1;
for(k=1;(1<<k)<=n;k++)
{
for(i=1;i+(1<<k)-1<=n;i++)
{
for(j=1;j+(1<<k)-1<=n;j++)
{
rmq[k][i][j]=max(max(max(rmq[k-1][i][j],rmq[k-1][i][j+(1<<(k-1))]),
rmq[k-1][i+(1<<(k-1))][j]),rmq[k-1][i+(1<<(k-1))][j+(1<<(k-1))]);
}
}
}
for(i=1;i<=m;i++)
{
in>>x>>y>>z;
int p;
p=lg[z];
out<<max(max(max(rmq[p][x][y],rmq[p][x][y+z-(1<<(p))]),
rmq[p][x+z-(1<<(p))][y]),rmq[p][x+z-(1<<(p))][y+z-(1<<(p))])<<'\n';
}
return 0;
}