Pagini recente » Cod sursa (job #639805) | Cod sursa (job #1249570) | Cod sursa (job #1638820) | Cod sursa (job #196998) | Cod sursa (job #2130980)
#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=1; i<=n; i++)
scanf("%d",&arb[i+n]);
for(i=n; 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/2+1 ;
b = (b-1)/2;
}
printf("%d\n",x);
}
return 0;
}