Pagini recente » Cod sursa (job #2069114) | Cod sursa (job #1075090) | Cod sursa (job #17545) | Cod sursa (job #689740) | Cod sursa (job #2685841)
#include "bits/stdc++.h"
using namespace std;
int main (){
ifstream cin ("rmq.in");
ofstream cout ("rmq.out");
int n,m;
cin >> n >> m;
vector <int> v(n), ab;
int d = 100;
for ( int i = 0; i < n; i++){
cin >>v[i];
if ( i % d == 0){
ab.push_back(v[i]);
} else {
if (ab[ab.size() -1 ] > v[i]){
ab[ab.size() - 1 ]= v[i];
}
}
}
for ( int i = 0 ; i < m; i++){
int s = 10000001;
int a,b;
cin >> a >> b;
a--;
b--;
int e = a;
while( e % d != 0 && e <= b){
if ( s > v[e]){
s= v[e];
}
e++;
}
while ( e + d <= b){
if ( s > ab[e/d]){
s= ab [ e/d];
}
e+= d;
}
while ( e <= b){
if (s > v[e]){
s = v[e];
}
e++;
}
cout << s << '\n';
}
return 0;
}