Pagini recente » Cod sursa (job #691782) | Cod sursa (job #2580314) | Cod sursa (job #1166001) | Cod sursa (job #252901) | Cod sursa (job #3223279)
#include "bits/stdc++.h"
const int DIM = 100004;
const int LOG = 17;
int v[DIM],rmq[LOG][DIM];
int n,q;
inline static void RMQ_RMQ_RMQ(){
int log = std::log2(n);
for(int i = 1; i < log+1; i++){
for(int j = 0; j+(1 << i) <= n; j++){
rmq[i][j] = std::min(rmq[i-1][j],rmq[i-1][j+(1 << (i-1))]);
}
}
}
inline static int query(int st, int dr){
int i = std::log2(dr-st+1);
return std::min(rmq[i][st],rmq[i][dr-(1<<i) + 1]);
}
inline static void solve(){
std::cin >> n >> q;
for(int i = 0; i < n; i++){
std::cin >> v[i];
rmq[0][i] = v[i];
}
RMQ_RMQ_RMQ();
while(q--){
int st,dr;
std::cin >> st >> dr;
std::cout << query(st-1,dr-1) << '\n';
}
}
signed main(){
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
solve();
return 0;
}