Pagini recente » Cod sursa (job #964403) | Cod sursa (job #1740409) | Cod sursa (job #1870023) | Cod sursa (job #457622) | Cod sursa (job #1280654)
#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]=P[i/2]+1;
for(k = 1; (1 << k-1) <= 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(i=1;i<=P[n];i++){
for(j=1;j<=n;j++){
for(int ii=1;ii<=n;ii++){
fout<<A[j][ii][i]<<" ";
}
fout<<"\n";
}
fout<<"\n";
}
*/
for(int y = 1; y <= m; y ++){
fin >> i >> j >> kq;
query(i,j,kq);
}
return 0;
}