Pagini recente » Cod sursa (job #1801106) | Cod sursa (job #1452833) | Cod sursa (job #2848616) | Cod sursa (job #155869) | Cod sursa (job #2130981)
#include <bits/stdc++.h>
using namespace std;
int n,m,i,arb[200005],x,a,b;
int main()
{
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0; i<n; i++)
scanf("%d",&arb[i+n]);
for(i=n-1; i>0; i--)
arb[i] = min(arb[i*2],arb[i*2+1]);
for(i=1; i<=m; i++)
{
scanf("%d%d",&a,&b);
a+=n;
b+=n;
x=200000;
while(a<=b)
{
x = min(x,min(arb[a],arb[b]));
a = (a+1)/2;
b = (b-1)/2;
}
printf("%d\n",x);
}
return 0;
}