Pagini recente » Cod sursa (job #3219921) | Cod sursa (job #1199538) | Cod sursa (job #362083) | Cod sursa (job #624321) | Cod sursa (job #3160631)
#include <fstream>
using namespace std;
ifstream fin ("plantatie.in");
ofstream fout ("plantatie.out");
int i1,i2,j1,j2,t,n,m,i,j,q,k,l,p,v[9][501][501],e[501];
int maxim (int a,int b,int c,int d)
{
return max (a,max (b,max (c,d)));
}
int main()
{
fin>>n>>q;
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
fin>>v[0][i][j];
}
for (p=1; (1<<p)<=n; p++)
{
l=(1<<(p-1));
for (i1=1; i1<=n; i1++)
{
for (j1=1; j1<=n; j1++)
{
i2=i1+l;
j2=j1+l;
v[p][i1][j1]=v[p-1][i1][j1];
if (i2<=n)
v[p][i1][j1]=max (v[p][i1][j1],v[p-1][i2][j1]);
if (j2<=n)
v[p][i1][j1]=max (v[p][i1][j1],v[p-1][i1][j2]);
if (i2<=n&&j2<=n)
v[p][i1][j1]=max (v[p][i1][j1],v[p-1][i2][j2]);
}
}
}
for (i=2; i<=n; i++)
e[i]=e[i/2]+1;
for (t=1; t<=q; t++)
{
fin>>i1>>j1>>k;
i2=i1+k-1;
j2=j1+k-1;
p=e[k];
l=(1<<p);
fout<<maxim (v[p][i1][j1],v[p][i2-l+1][j1],v[p][i1][j2-l+1],v[p][i2-l+1][j2-l+1])<<"\n";
}
return 0;
}