Pagini recente » Cod sursa (job #2810207) | Cod sursa (job #2820068) | Cod sursa (job #1130757) | Cod sursa (job #897551) | Cod sursa (job #2901931)
#include <iostream>
#include <fstream>
#define N 505
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int rmq[N][N][9];
int log_bin[N];
int maxim4(int a, int b, int c, int d)
{
return max(max(a, b), max(c, d));
}
int main()
{
int n, m, x, i, j, k, l, log;
fin >> n >> m;
log_bin[1] = 0;
for(i = 2; i <= n; i++)
log_bin[i] = 1 + log_bin[i / 2];
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
{
fin >> x;
rmq[i][j][0] = x;
}
for(log = 1; log <= 9; log++)
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
rmq[i][j][log] = maxim4(rmq[i][j][log - 1], rmq[i + (1 << (log - 1))][j][log - 1], rmq[i][j + (1 << (log - 1))][log - 1], rmq[i + (1 << (log - 1))][j + (1 << (log - 1))][log - 1]) ;
for(k = 1; k <=m; k++)
{
fin >> i >> j >> l;
fout << maxim4(rmq[i][j][log_bin[l]], rmq[i][j + l - (1 << log_bin[l])][log_bin[l]], rmq[i + l - (1 << log_bin[l])][j + l - (1 << log_bin[l])][log_bin[l]], rmq[i + l - (1 << log_bin[l])][j][log_bin[l]]) << "\n";
}
return 0;
}