Pagini recente » Cod sursa (job #1917079) | Cod sursa (job #1623487) | Cod sursa (job #2910769) | Cod sursa (job #1585320) | Cod sursa (job #2683868)
#include <bits/stdc++.h>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int maxim(int x,int y,int z,int v)
{
return max(max(x,y),max(z,v));
}
int d[500][505][10],n,m,p,k,x,y,l;
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)f>>d[i][j][0];
for(int k=1;k<=9;k++)
{
p=(1<<k);
for(int i=1;i<=n-p+1;i++)
{
for(int j=1;j<=n-p+1;j++)
d[i][j][k]=maxim(d[i][j][k-1],d[i+p/2][j][k-1],d[i][j+p/2][k-1],d[i+p/2][j+p/2][k-1]);
}
}
for(int i=1;i<=m;i++)
{
f>>x>>y>>l;
p=log2(l);
ans=maxim(d[x][y][p],d[x+l-(1<<p)][y][p],d[x][y+l-(1<<p)][p],d[x+l-(1<<p)][y+l-(1<<p)][p]);
g<<ans<<'\n';
}
return 0;
}