Pagini recente » Cod sursa (job #2849899) | Cod sursa (job #2273935) | Cod sursa (job #2791415) | Cod sursa (job #592917) | Cod sursa (job #3134293)
#include <fstream>
#include <unordered_map>
#include <vector>
#include <cmath>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int v[100000][17];
int main() {
int n, m, x, y;
in >> n >> m;
for (int i = 0; i < n; ++i) {
in >> x;
v[i][0] = x;
}
for (int i = 1; pow(2, i) < n; ++i) {
for (int j = 0; j + (pow(2, (i - 1))) < n; ++j) {
v[j][i] = min(v[j][i - 1], v[j + (1 << (i - 1))][i - 1]);
}
}
for (int i = 0; i < m; ++i) {
in >> x >> y;
int log = floor(log2(y - x + 1));
out << std::min(v[x - 1][log], v[y - (1 << log)][log]) << "\n";
}
return 0;
}