Pagini recente » Cod sursa (job #2483498) | Cod sursa (job #1773026) | Cod sursa (job #952994) | Cod sursa (job #1706671) | Cod sursa (job #455896)
Cod sursa(job #455896)
#include<algorithm>
using namespace std;
#define DIM 100005
int n,m,a[30][DIM];
inline int cmm (int x)
{
int i;
for(i=0;(1<<i)<=x;++i);
return i-1;
}
int main ()
{
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
int i,n2,j,x,y;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)
scanf("%d",&a[0][i]);
n2=1<<cmm(n);
n=1<<cmm(n);
for(i=1;i<=n2;++i,n/2)
for(j=1;j<=n;++j)
a[i][j]=min(a[i-1][j],a[i-1][j+i]);
for(i=1;i<=m;++i)
{
scanf("%d %d",&x,&y);
n2=cmm(y-x+1);
printf("%d\n",min(a[n2][x],a[n2][y-n2]));
}
return 0;
}