Pagini recente » Cod sursa (job #1557545) | Cod sursa (job #319688) | Istoria paginii runda/simulare_oji2012_clasa_a_9-a/clasament | Cod sursa (job #55540) | Cod sursa (job #455897)
Cod sursa(job #455897)
#include<algorithm>
using namespace std;
#define DIM 100005
long int n,m,a[18][DIM];
inline long 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);
long int i,n2,j,x,y;
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;++i)
scanf("%ld",&a[0][i]);
n2=cmm(n);
for(i=1;i<=n2;++i)
for(j=1;j<=n-(1<<i)+1;++j)
a[i][j]=min(a[i-1][j],a[i-1][j+(1<<(i-1))]);
for(i=1;i<=m;++i)
{
scanf("%ld %ld",&x,&y);
n2=cmm(y-x+1);
printf("%ld\n",min(a[n2][x],a[n2][y+1-(1<<n2)]));
}
return 0;
}