Pagini recente » Cod sursa (job #2146795) | Cod sursa (job #1179933) | Cod sursa (job #297850) | Cod sursa (job #387582) | Cod sursa (job #3211085)
#include <bits/stdc++.h>
using namespace std;
ifstream f("plantatie.in");
ofstream g("plantatie.out");
int n,m,d[501][501][9],k,x,y,z;
int maxim(int a,int b,int c,int d)
{
return max(max(max(a,b),c),d);
}
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; (1<<k)<=n; k++)
for(int i=1; i+(1<<k)-1<=n; i++)
for(int j=1; j+(1<<k)-1<=n; j++)
{
d[i][j][k]=maxim(d[i][j][k-1],d[i+(1<<(k-1))][j][k-1],d[i][j+(1<<(k-1))][k-1],d[i+(1<<(k-1))][j+(1<<(k-1))][k-1]);
}
for(int l=1; l<=m; l++)
{
f>>x>>y>>z;
int p=log2(z);
int lung=1<<(p);
g<<maxim(d[x][y][p],d[x+z-lung][y][p],d[x][y+z-lung][p],d[x+z-lung][y+z-lung][p])<<endl;
}
return 0;
}