Pagini recente » Cod sursa (job #1911601) | Cod sursa (job #901009) | Cod sursa (job #1638803) | Cod sursa (job #655513) | Cod sursa (job #1103479)
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int n,m,A[18][200001];
inline void querry(int poz,int lenght)
{
int line=log2(lenght);
int minim=min(A[line][poz],A[line][poz+lenght-(1<<line)]);
printf("%d\n",minim);
}
int main()
{
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
scanf("%d%d",&n,&m);
int i,j,IT=1,nrl=1;
for(i=1;i<=n;i++)scanf("%d",&A[0][i]);
for(i=1;i<=16;i++)
{
for(j=1;j<=n;++j)
if(j+IT>n)A[i][j]=A[i-1][j];
else A[i][j]=min(A[i-1][j],A[i-1][j+IT]);
IT*=2;
}
int a,b;
for(i=1;i<=m;++i)
{
scanf("%d%d",&a,&b);
querry(a,b-a+1);
}
return 0;
}