Pagini recente » Cod sursa (job #1261138) | Cod sursa (job #601821) | Cod sursa (job #527699) | Cod sursa (job #1599091) | Cod sursa (job #3041066)
#include <bits/stdc++.h>
using ll=long long;
#define S second
#define F first
#define endl '\n'
#define spid ios_base::sync_with_stdio(false);cin.tie(NULL);
const int mod=1e9+7;
const double pi=3.14159265359;
const int maxn=100001;
using namespace std;
int n,q,lg[maxn],A[maxn];
int sparse[19][maxn];
int main(){
ifstream cin("rmq.in");
ofstream cout("rmq.out");
cin>>n>>q;
for(int i=2;i<=maxn;i++){
lg[i]=lg[i/2]+1;
}
for(int i=0;i<n;i++)cin>>A[i];
for(int i=0;i<n;i++)sparse[0][i]=A[i];
for(int i=1;i<=18;i++){
for(int j=0;j+(1<<i)-1<n;j++){
sparse[i][j]=min(sparse[i-1][j],sparse[i-1][j+(1<<(i-1))]);
}
}
while(q--){
int l,r;
cin>>l>>r;
l--;
r--;
int i=lg[r-l+1];
cout<<min(sparse[i][l],sparse[i][r-(1<<i)+1])<<endl;
}
}