Pagini recente » Cod sursa (job #464203) | Cod sursa (job #3209655) | Cod sursa (job #1413422) | Cod sursa (job #237141) | Cod sursa (job #2906451)
#include <bits/stdc++.h>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int n, m, a[100005][30], x, y;
int main()
{
in>>n>>m;
for(int i=1; i<=n; i++){
in>>a[i][0];
}
for(int j=1; (1<<j)<n; j++){
for(int i=1; i+(1<<j)<=n+1; i++){
a[i][j]=min(a[i][j-1], a[i+(1<<(j-1))][j-1]);
}
}
for(int i=1; i<=m; i++){
in>>x>>y;
if(y<x){
swap(x, y);
}
int L=log2(y-x+1);
int s=min(a[x][L], a[y-(1<<L)+1][L]);
out<<s<<'\n';
}
return 0;
}