Pagini recente » Cod sursa (job #914636) | Cod sursa (job #2298124) | Cod sursa (job #279941) | Cod sursa (job #2521541) | Cod sursa (job #1201525)
#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,k=0;i<=m;++i,k=0){
cin>>a>>b;
if (a==b) cout<<RMQ[0][a]<<"\n";
for (aux=1; aux<=(b-a); aux*=2,++k); --k;
cout<<min(RMQ[k][a],RMQ[k][b-(1<<k)+1])<<"\n";
}
return 0;
}