Pagini recente » Cod sursa (job #2922311) | Cod sursa (job #73327) | Cod sursa (job #1846431) | Cod sursa (job #355465) | Cod sursa (job #2305561)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int l[100002],r[100002][17],a[100002];
int main()
{
int n,m,i,j,nr;
in>>n>>m;
for(i=2;i<=n;i++)
l[i]=1+l[i/2];
for(i=1;i<=n;i++)
{
in>>r[i][0];
for(j=1;(1<<j)<=i;j++)
r[i][j]=min(r[i-(1<<(j-1))][j-1],r[i][j-1]);
}
while(m--)
{
in>>i>>j;
nr=l[j-i+1];
out<<min(r[i+(1<<nr)-1][nr],r[j][nr])<<"\n";
}
return 0;
}