Pagini recente » Cod sursa (job #51832) | Cod sursa (job #2867775) | Cod sursa (job #1377714) | Cod sursa (job #2569278) | Cod sursa (job #2849803)
#include <bits/stdc++.h>
using namespace std;
int n,q,st,dr,qr[18][100001],lg[100001];
int main()
{
ifstream cin("rmq.in");
ofstream cout("rmq.out");
cin>>n>>q;
for(int i=2;i<=n;i++)
lg[i]=1+lg[i/2];
for(int i=1;i<=n;i++)
cin>>qr[0][i];
for(int i=1;(1<<i)<=n;i++)
for(int j=1;j<=n;j++)
{
qr[i][j]=min(qr[i-1][j-(1<<(i-1))],qr[i-1][j]);
}
for(int i=1;i<=q;i++)
{
cin>>st>>dr;
int e=lg[dr-st+1];
cout<<min(qr[e][st+(1<<e)-1],qr[e][dr])<<"\n";
}
return 0;
}