Pagini recente » Cod sursa (job #2483269) | Cod sursa (job #2538834) | Cod sursa (job #1606142) | Cod sursa (job #892666) | Cod sursa (job #2269403)
#include <fstream>
using namespace std;
ifstream in("plantatie.in");
ofstream out("plantatie.out");
const int N=501;
const int L=9;
int r[L][N][N],log2[N],n,m;
int main()
{
in>>n>>m;
for(int i=2;i<=n;i++)
log2[i]=1+log2[i/2];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
in>>r[0][i][j];
int l,mic,x,y;
for(int k=1;k<=log2[n];k++)
{
l=n-(1<<k)+1;
mic=1<<(k-1);
for(int i=1;i<=l;i++)
for(int j=1;j<=l;j++)
{
x=max(r[k-1][i][j],r[k-1][i+mic][j+mic]);
y=max(r[k-1][i+mic][j],r[k-1][i][j+mic]);
r[k][i][j]=max(x,y);
}
}
int i,j,k;
for(int l=0;l<m;l++)
{
in>>i>>j>>mic;
k=log2[mic-1];
mic=mic-(1<<k);
x=max(r[k][i][j],r[k][i+mic][j+mic]);
/*out<<'('<<k<<','<<i<<','<<j<<')'<<'\n';
out<<'('<<k<<','<<i+mic<<','<<j+mic<<')'<<'\n';*/
y=max(r[k][i+mic][j],r[k][i][j+mic]);
/*out<<'('<<k<<','<<i+mic<<','<<j<<')'<<'\n';
out<<'('<<k<<','<<i<<','<<j+mic<<')'<<'\n';*/
out<<max(x,y)<<'\n';
}
return 0;
}