Pagini recente » Cod sursa (job #1377452) | Cod sursa (job #2391399) | Cod sursa (job #1590572) | Cod sursa (job #2124597) | Cod sursa (job #2741950)
#include <fstream>
using namespace std;
int v[100001],r[17][100001],log2[100001];
int main()
{
ifstream cin("rmq.in");
ofstream cout("rmq.out");
for(int i=2;i<=100000;i++)
log2[i]=1+log2[i/2];
int n,st,dr,Q;
cin>>n>>Q;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n;i++)
r[0][i]=v[i];
for(int i=1;i<=log2[n];i++)
for(int j=1;j<=n;j++)
r[i][j]=min(r[i-1][j-(1<<(i-1))],r[i-1][j]);
for(int i=1;i<=Q;i++)
{
cin>>st>>dr;
int put=log2[dr-st+1];
cout<<min(r[put][st+(1<<put)-1],r[put][dr])<<'\n';
}
return 0;
}