Pagini recente » Cod sursa (job #561982) | Cod sursa (job #1132960) | Cod sursa (job #882728) | Cod sursa (job #1337873) | Cod sursa (job #1451623)
#include<bits/stdc++.h>
using namespace std;
int i,j,rmq[20][100005],n,q,x,y,Log[100005],lung;
int main()
{
ifstream cin("rmq.in");
ofstream cout("rmq.out");
ios_base::sync_with_stdio(0);
for(i=2;i<=100000;++i) Log[i]=Log[i/2]+1;
cin>>n>>q;
for(i=1;i<=n;++i) cin>>rmq[0][i];
for(i=1;i<=Log[n];++i)
for(j=1;j-1+(1<<i)<=n;++j)
rmq[i][j]=min(rmq[i-1][j],rmq[i-1][j+(1<<(i-1))]);
while(q--)
{
cin>>x>>y; lung=Log[y-x+1];
cout<<min(rmq[lung][x],rmq[lung][y+1-(1<<lung)])<<'\n';
}
return 0;
}