Pagini recente » Cod sursa (job #2571103) | Cod sursa (job #2862362) | Cod sursa (job #1602362) | Cod sursa (job #1443867) | Cod sursa (job #2834515)
#include <fstream>
using namespace std;
int n,m,i,p,j,w,ia,ib,ja,jb,lat,l,lg,k,v[10][502][502],x[502];
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int maxim(int a, int b)
{
if (a>b)
return a;
else
return b;
}
int main()
{
fin>>n>>m;
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
fin>>v[0][i][j];
}
for (p=1,lat=2; lat<=n; p++,lat*=2)
{
for (ia=1; ia<=n-lat+1; ia++)
{
for (ja=1; ja<=n-lat+1; ja++)
{
ib=ia+(lat>>1);
jb=ja+(lat>>1);
v[p][ia][ja] = max(max(v[p-1][ia][ja],v[p-1][ib][ja]),max(v[p-1][ia][jb],v[p-1][ib][jb]));
}
}
}
x[1]=0;
for (i=2; i<=n; i++)
x[i]=1+x[i/2];
for (w=m; w>0; w--)
{
fin>>ia>>ja>>l;
k=x[l];
lg=(1<<k);
ib=ia+l-lg;
jb=ja+l-lg;
fout<<max(max(v[k][ia][ja],v[k][ia][jb]),max(v[k][ib][ja],v[k][ib][jb]))<<"\n";
}
return 0;
}