Pagini recente » Cod sursa (job #2547134) | Cod sursa (job #430408) | Cod sursa (job #2518593) | Cod sursa (job #495234) | Cod sursa (job #2309022)
#include<bits/stdc++.h>
#define ll long long
#define f first
#define s second
#define N 100001
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int dp[N][17];
int main(){
int n,m,x,y,i,j;
in>>n>>m;
for(i=1; i<=n; ++i)
in>>dp[i][0];
for(j=1; (1<<j)<=n; ++j)
for(i=1; i+(1<<j)-1<=n; ++i)
dp[i][j]=min(dp[i][j-1], dp[i+(1<<(j-1))][j-1]);
while(m--){
in>>x>>y;
j=log2(y-x+1);
cout<<min(dp[x][j], dp[y-(1<<j)+1][j])<<"\n";
}
return 0;
}