Pagini recente » Cod sursa (job #1521953) | Cod sursa (job #479211) | Cod sursa (job #2674007) | Cod sursa (job #2721966) | Cod sursa (job #1201519)
#include <fstream>
using namespace std;
ifstream cin("rmq.in");
ofstream cout("rmq.out");
int n,i,m,j,k,a,b,aux;
int RMQ[33][100013];
int main()
{
cin>>n>>m;
for (i=1;i<=n;++i) cin>>RMQ[0][i];
for (i=1;(1<<i)<=n;++i)
for (j=1;j+(1<<i)-1<=n;++j)
RMQ[i][j]=min(RMQ[i-1][j],RMQ[i-1][j+(1<<i-1)]);
for (i=1;i<=m;++i){
k=0;
cin>>a>>b;
for (aux=1; aux<=(b-a); aux*=2) ++k;
--k;
cout<<min(RMQ[k][a],RMQ[k][b-(1<<k)+1])<<"\n";
}
return 0;
}