Pagini recente » Cod sursa (job #1638775) | Cod sursa (job #43019) | Cod sursa (job #2083664) | Cod sursa (job #1523955) | Cod sursa (job #901895)
Cod sursa(job #901895)
#include<cstdio>
#include<algorithm>
#define INF 100002
using namespace std;
int din[17][INF],lg[INF],n,m;
int main()
{
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
scanf("%d%d",&n,&m);
lg[1]=0;
for(int i=1;i<=n;++i)scanf("%d",&din[0][i]);
for(int i=2;i<=n;++i)lg[i]=lg[i/2]+1;
for(int i=1;i<=lg[n];++i)
for(int j=1;j<=n-(1<<i)+1;++j)
din[i][j]=min(din[i-1][j],din[i-1][j+(1<<(i-1))]);
for(int i=1;i<=m;++i)
{
int a,b;
scanf("%d%d",&a,&b);
int k=lg[b-a+1];
printf("%d\n",min(din[k][a],din[k][b-(1<<k)+1]));
}
return 0;
}