Pagini recente » Cod sursa (job #2729129) | Cod sursa (job #1254159) | Cod sursa (job #835924) | Cod sursa (job #804233) | Cod sursa (job #2559044)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int n,q;
int rmq[17][100001];
int main()
{
in>>n>>q;
for(int i=1;i<=n;i++)
in>>rmq[0][i];
int rMax=log2(n);
for(int r=1,l=1;r<=rMax;r++,l*=2)
for(int i=1;i<=n-2*l+1;i++)
rmq[r][i]=min( rmq[r-1][i] , rmq[r-1][i+l] );
for(int a,b,k=1;k<=q;k++)
{
in>>a>>b;
int r=log2(b-a+1);
int l=1<<r;
out<<min( rmq[r][a] , rmq[r][b-l+1] )<<'\n';
}
return 0;
}