Pagini recente » Cod sursa (job #2011843) | Cod sursa (job #1607068) | Cod sursa (job #2013528) | Cod sursa (job #2174789) | Cod sursa (job #3242806)
/*
* Author:
* Time: 2024-09-14 09:01:12
*/
#include <bits/stdc++.h>
using namespace std;
int rmq[17][100003], lg[100003];
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ifstream cin{"rmq.in"};
ofstream cout{"rmq.out"};
int N, Q;
cin >> N >> Q;
for (int i = 1; i <= N; i++) {
cin >> rmq[0][i];
}
for (int i = 1; (1 << i) <= N; i++) {
for (int j = 1; j <= N - (1 << i) + 1; j++) {
rmq[i][j] = min(rmq[i - 1][j], rmq[i - 1][j + (1 << (i - 1))]);
}
}
while (Q--) {
int l, r;
cin >> l >> r;
int p = 31 - __builtin_clz(r - l + 1);
cout << min(rmq[p][l], rmq[p][r - (1 << p) + 1]) << '\n';
}
return 0;
}