Pagini recente » Cod sursa (job #1070666) | Cod sursa (job #2650437) | Cod sursa (job #1541916) | Cod sursa (job #698139) | Cod sursa (job #3236208)
#include <fstream>
const int N=1e5+1;
std::ifstream f("rmq.in");
std::ofstream g("rmq.out");
#define m(a,b) (a<b?a:b)
int a[17][N];
int main() {
int n, q;
f >> n >> q;
for (int i = 1; i <= n; i++) {
f >> a[0][i];
}
for (int j = 1; j < 17; j++) {
for (int i = 1; i < n; i++) {
a[j][i] = m(a[j - 1][i], a[j - 1][i+(1<<(j-1))]);
}
}
while (q--) {
int l, r;
f >> l >> r;
int k = std::__lg(r-l+1);
g << m(a[k][l],a[k][r-(1<<k)+1]) << '\n';
}
return 0;
}