Pagini recente » Cod sursa (job #2720631) | Cod sursa (job #3192748) | Cod sursa (job #2913685) | Cod sursa (job #886664) | Cod sursa (job #1080798)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("plantatie.in");
ofstream g ("plantatie.out");
int m,n;
int a[501][501];
int rmq[19][501][501];
int v[501];
int maxim (int x, int y, int z, int t)
{
int mxm=x;
if(mxm<y)
mxm=y;
if(mxm<z)
mxm=z;
if(mxm<t)
mxm=t;
return mxm;
}
int main()
{
f>>n>>m;
int i,j,k,l,linie,col,lat;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
f>>a[i][j];
rmq[0][i][j]=a[i][j];
}
for (i=2;i<=n;i++)
v[i]=v[i/2]+1;
for (i=1;(1<<i)<=n;i++)
for (j=0;j<n-(1<<i)+1;j++)
for (k=0;k<n-(1<<i)+1;k++)
{
l=1<<(i-1);
rmq[i][j][k]=maxim(rmq[i-1][j][k],rmq[i-1][j+l][k],rmq[i-1][j+l][k+l],rmq[i-i][j][k+l]);
}
for (i=1;i<=m;i++)
{
f>>linie>>col>>lat;
linie--;
col--;
long long x=(1<<v[lat]);
g<<maxim(rmq[v[lat]][linie][col], rmq[v[lat]][linie+lat-x][col], rmq[v[lat]][linie+lat-x][col+lat-x], rmq[v[lat]][linie][col+lat-x])<<'\n';
}
f.close();g.close();
return 0;
}