Pagini recente » Cod sursa (job #639683) | Cod sursa (job #2944389) | Cod sursa (job #1066679) | Cod sursa (job #2407813) | Cod sursa (job #2871115)
#include <bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream cin ("rmq.in");
ofstream cout ("rmq.out");
int i,j,n,logg[100008],dp[24][100008],st,dr,m,doi;
int main()
{
cin>>n>>m;
for(i=1;i<=n;i++)
cin>>dp[0][i];
logg[1]=0;
for(i=2;i<=n;i++)
logg[i]=logg[i/2]+1;
for(i=1;i<=logg[n];i++)
{
for(j=1;j<=n-(1<<i)+1;j++)
dp[i][j]=min(dp[i-1][j],dp[i-1][j+(1<<(i-1))]);
}
for(i=1;i<=m;i++)
{
cin>>st>>dr;
doi=logg[dr-st+1];
cout<<min(dp[doi][st],dp[doi][dr-(1<<doi)+1])<<'\n';
}
return 0;
}