Pagini recente » Cod sursa (job #89401) | Cod sursa (job #3150911) | Cod sursa (job #1542498) | Cod sursa (job #4809) | Cod sursa (job #1225149)
#include <cstdio>
#include <algorithm>
using namespace std;
int v[100010][22],aux[22],n,m,i,j,x,y;
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",&v[i][0]);
for(i=0,j=1;i<=20;j<<=1,i++) aux[i]=j;
for(i=1;aux[i]<=n;i++)
for(j=1;j<=n-aux[i]+1;j++) v[j][i]=min(v[j][i-1],v[j+aux[i-1]][i-1]);
for(;m;m--)
{
scanf("%d%d",&x,&y);
for(i=1;aux[i]<=y-x+1;i++);
i--;
printf("%d\n",min(v[x][i],v[y-aux[i]+1][i]));
}
return 0;
}