Pagini recente » Cod sursa (job #2358000) | Cod sursa (job #2460317) | Cod sursa (job #440267) | Cod sursa (job #439608) | Cod sursa (job #2776696)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
const int lim=1e5+4;
int tree[18][lim];
int lg[lim];
int n,q,x,y;
int main()
{
in>>n>>q;
for(int i=1;i<=n;++i)
in>>tree[0][i];
for(int i=2;i<=n;++i)
lg[i]=lg[i/2]+1;
for(int p=1;p<=lg[n];++p)
for(int i=1;i+(1<<p)-1<=n;++i)
tree[p][i]=min(tree[p-1][i],tree[p-1][i+(1<<(p-1))]);
while(q--)
{
in>>x>>y;
int d=lg[y-x+1];
out<<min(tree[d][x],tree[d][y-(1<<d)+1])<<'\n';
}
return 0;
}