Pagini recente » Cod sursa (job #1982326) | Cod sursa (job #848186) | Cod sursa (job #1044001) | Cod sursa (job #221900) | Cod sursa (job #2327174)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("plantatie.in");
ofstream g ("plantatie.out");
const int nmax=5e2+3;
int n,t,v[nmax][nmax][13],lg[nmax],x,y,k,u,sol;
int main()
{
ios::sync_with_stdio(false);
f>>n>>t;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j) f>>v[i][j][0];
}
for(int i=2;i<=n;++i) lg[i]=lg[i/2]+1;
for(int k=1;(1<<k)<=n;++k)
{
int d=(1<<(k-1));
for(int i=1;i+d*2<=n+1;++i)
{
for(int j=1;j+d<=n+1;++j)
{
v[i][j][k]=max(max(v[i][j][k-1],v[i+d][j][k-1]),max(v[i][j+d][k-1],v[i+d][j+d][k-1]));
}
}
}
while(t--)
{
f>>x>>y>>k;
int d=(1<<(lg[k]));
g<<max(v[x][y][lg[k]],max(v[x+k-d][y][lg[k]],max(v[x][y+k-d][lg[k]],v[x+k-d][y+k-d][lg[k]])))<<'\n';
}
return 0;
while(t--)
{
f>>x>>y>>k;
u=lg[k];
sol=v[x][y][u];
sol=max(v[x][y][u],v[x][y-(1<<u)+k][u]);
sol=max(v[x][y][u],v[x-(1<<u)+k][y][u]);
sol=max(v[x][y][u],v[x-(1<<u)+k][y-(1<<u)+k][u]);
g<<sol<<'\n';
}
return 0;
}