Pagini recente » Cod sursa (job #2268134) | Cod sursa (job #851081) | Cod sursa (job #2573339) | Cod sursa (job #858410) | Cod sursa (job #2152504)
#include <iostream>
#include <fstream>
#define MAX 510
using namespace std;
int n,m,x,y,x2,y2,k,pt,i2,j2;
int p[MAX][MAX][9];
int main()
{
ifstream f ("plantatie.in");
ofstream g ("plantatie.out");
f>>n>>m;
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) f>>p[i][j][0];
for(int sp=1;sp<=8;sp++){
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
i2=min(n,i+(1<<(sp-1)));
j2=min(n,j+(1<<(sp-1)));
p[i][j][sp]=max(p[i][j][sp-1],max(p[i][j2][sp-1],max(p[i2][j][sp-1],p[i2][j2][sp-1])));
}
}
for(int i=1;i<=m;i++){
f>>x>>y>>k;
for(pt=0;(1<<pt)<=k;pt++);pt--;
x2=x+k-(1<<pt);y2=y+k-(1<<pt);
g<<max(p[x][y][pt],max(p[x][y2][pt],max(p[x2][y][pt],p[x2][y2][pt])))<<'\n';
}
f.close();
g.close();
return 0;
}