Pagini recente » Cod sursa (job #3237228) | Cod sursa (job #2340090) | Cod sursa (job #25151) | Cod sursa (job #1075261) | Cod sursa (job #2485638)
#include <fstream>
using namespace std;
ifstream ci ("plantatie.in");
ofstream co ("plantatie.out");
int r[10][501][501];
int log[501];
int main()
{
int n,c,lat;
ci >> n >> c;
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
ci >> r[0][i][j];
}
}
for (int l=1; (1<<l)<=n; l++)
{
lat=1<<(l-1);
for (int i=1; i+(1<<l)-1<=n+1; i++)
{
for (int j=1; j+(1<<l)-1<=n+1; j++)
{
r[l][i][j]=max(r[l-1][i][j], r[l-1][i][j+lat]);
r[l][i][j]=max(r[l][i][j], r[l-1][i+lat][j]);
r[l][i][j]=max(r[l][i][j], r[l-1][i+lat][j+lat]);
}
}
}
log[1]=0;
for (int i=2; i<=n; i++)
{
log[i]=log[i/2]+1;
}
int a,b,k,rez,l;
for (int i=1; i<=c; i++)
{
ci >> a >> b >> lat;
l=log[lat];
rez=max(r[l][a][b], r[l][a+lat-(1<<l)][b]);
rez=max(rez, r[l][a][b+lat-(1<<l)]);
rez=max(rez, r[l][a+lat-(1<<l)][b+lat-(1<<l)]);
co << rez << endl;
}
return 0;
}