Pagini recente » Cod sursa (job #2378094) | Cod sursa (job #2345787) | Cod sursa (job #277490) | Cod sursa (job #684623) | Cod sursa (job #2529390)
#include<fstream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int rmq[100005][18];
int main(){
ifstream in("rmq.in");
ofstream out("rmq.out");
int n,m,k,o,p;
in>>n>>m;
for(int i=1;i<=n;i++){
in>>rmq[i][0];
}
for(int j=1;(1<<j)<=n;j++){
for(int i=1;i+(1<<j)-1<=n;i++){
rmq[i][j]=min(rmq[i][j-1],rmq[i+(1<<(j-1))][j-1]);
}
}
while(m--){
in>>o>>p;
k=log2(p-o+1);
out<<min(rmq[o][k],rmq[1+p-(1<<k)][k])<<"\n";
}
}