Pagini recente » Cod sursa (job #1464591) | Cod sursa (job #523699) | Cod sursa (job #979543) | Cod sursa (job #1865949) | Cod sursa (job #2481041)
#include <iostream>
#include <fstream>
using namespace std;
int r[12][505][505];
int log[505];
int main()
{
ifstream in("plantatie.in");
ofstream out("plantatie.out");
int n,m;
in>>n>>m;
for (int i=0;i<n;i++)
{
for (int j=0;j<n;j++)
{
in>>r[0][i][j];
}
}
log[1]=0;
for (int i=2;i<=n;i++)
{
log[i]=1+log[i/2];
}
for (int o=1;o<=log[n];o++)
{
for (int i=0;i<n;i++)
{
for (int j=0;j<n;j++)
{
r[o][i][j]=max(max(r[o-1][i][j],r[o-1][i][j+(1<<(o-1))]),max(r[o-1][i+(1<<(o-1))][j],r[o-1][i+(1<<(o-1))][j+(1<<(o-1))]));
}
}
}
int x1,y1,k,x2,y2;
for (int i=1;i<=m;i++)
{
in>>x1>>y1>>k;
x1--;
x2--;
x2=x1+k;
y2=y1+k;
int l=log[k];
out<<max(max(r[l][x1][y1],r[l][x1][y2-(1<<l)+1]),max(r[l][x2-(1<<l)+1][y1],r[l][x2-(1<<l)+1][y2-(1<<l)+1]))<<"\n";
}
in.close();
out.close();
return 0;
}