Pagini recente » Cod sursa (job #2959324) | Cod sursa (job #2387720) | Cod sursa (job #2896253) | Cod sursa (job #1091637) | Cod sursa (job #3225692)
#include <fstream>
#include <math.h>
using namespace std;
ifstream cin("rmq.in");
ofstream cout("rmq.out");
int v[100005][20];
int main()
{
int n, m, a, b, k=1, i, j=1;
cin>>n>>m;
for(i=0; i<n; i++){
cin>>v[i][0];
//cout<<v[i][0]<<' ';
}
//cout<<endl;
while(k<n){
for(i=0; i<n; i++){
v[i][j]=min(v[i][j-1], v[i+k][j-1]);
//cout<<v[i][j]<<' ';
}
//cout<<endl;
j++;
k*=2;
}
for(i=0; i<m; i++){
cin>>a>>b;
a--;
b--;
j=log2(b-a+1);
k=1<<j;
//cout<<i<<' '<<j<<' ';
cout<<min(v[a][j], v[b-k+1][j])<<endl;
}
return 0;
}