Pagini recente » Cod sursa (job #238886) | Cod sursa (job #36774) | Cod sursa (job #2217322) | Cod sursa (job #48506) | Cod sursa (job #3175310)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("plantatie.in");
ofstream fout("plantatie.out");
int rmq[13][505][505], e[505], n;
int main()
{
int i, j, k, q, L, M, exp;
fin >> n >> q;
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
fin >> rmq[0][i][j];
for (i = 2; i <= n; i++)
e[i] = 1 + e[i / 2];
for (k = 1; k <= n; k++)
for (i = 1; i <= e[n]; i++)
{
L = (1 << i);
for (j = 1; j <= n - L + 1; j++)
rmq[i][k][j] = max(rmq[i - 1][k][j], rmq[i - 1][k][j + L / 2]);
}
while (q--)
{
fin >> i >> j >> k;
M = 0; exp = e[j - i + 1];
for (L = 0; L < k; L++)
M = max({ M, rmq[exp][i + L][j], rmq[exp][i + L][j + k - (1 << exp)] });
fout << M << "\n";
}
return 0;
}