Pagini recente » Cod sursa (job #2656652) | Cod sursa (job #2827711) | Cod sursa (job #1065082) | Cod sursa (job #659061) | Cod sursa (job #3247418)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int table[100001][1000];
int main()
{
int N, M;
in >> N >> M;
for(int i = 0; i < N; ++i){
int x;
in >> x;
table[i][0] = x;
}
for(int j = 1; (1 << j) <= N; ++j){
for(int i = 0; i + (1 << j) - 1 <= N; ++i){
table[i][j] = min(table[i][j - 1], table[i + (1 << (j - 1))][j - 1]);
}
}
for(int u = 0; u < M; ++u){
int l, r;
in >> l >> r;
--l;
--r;
int j = log2(r - l + 1);
out << min(table[l][j], table[r - (1 << j) + 1][j]) << '\n';
}
return 0;
}