Pagini recente » Cod sursa (job #2350537) | Cod sursa (job #111631) | Cod sursa (job #1334009) | Cod sursa (job #457045) | Cod sursa (job #1280641)
#include <fstream>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int n, m, i, j, k, kq;
int A[550][550][12];
int P[510];
void query(int i, int j, int k){
int a = P[k] - 1;
fout << max(A[i][j][a], max(A[i+k-(1<<a)][j][a], max(A[i][j+k-(1<<a)][k],A[i+k-(1<<a)][j+k-(1<<a)][a])))<<'\n';
}
int main()
{
fin >> n >> m;
for(i = 1; i <= n; i ++)
for(j = 1; j <= n; j ++)
fin >> A[i][j][0];
P[1] = 0;
for(i = 2; i <= n; i ++)
P[i] = 1 + P[i / 2];
for(k = 1; (1 << k) <= n; k ++){
int u = 1 << (k - 1);
for(i = 1; i + u - 1 <= n; i ++)
for(j = 1; j + u - 1 <= n; j ++){
A[i][j][k] = max(A[i][j][k - 1],max(A[i + u][j][k - 1],max(A[i][j + u][k - 1], A[i + u][j + u][k - 1])));
}
}
for(int y = 1; y <= m; y ++){
fin >> i >> j >> kq;
query(i,j,kq);
}
return 0;
}