Pagini recente » Cod sursa (job #821155) | Borderou de evaluare (job #133271) | Cod sursa (job #3152988) | Cod sursa (job #1775430) | Cod sursa (job #2579784)
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
const int nmax=1e5+3;
const int inf=2e9+3;
using namespace std;
int dp[nmax][25];
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
int n,m;
cin>>n>>m;
int a[n+3];
for(int i=1;i<=n;i++) cin>>a[i],dp[i][0]=a[i];
for(int i=n;i>=1;i--)
for(int j=0;i+(1<<j)<=n;j++)
dp[i][j+1]=min(dp[i][j],dp[i+(1<<j)][j]);
while(m--)
{
int a,b;
cin>>a>>b;
int lg=log2(b-a+1);
cout<<min(dp[a][lg],dp[b-(1<<lg)+1][lg])<<"\n";
}
}