Pagini recente » Cod sursa (job #2085518) | Cod sursa (job #527630) | Cod sursa (job #1146649) | Cod sursa (job #392839) | Cod sursa (job #3253691)
#include <bits/stdc++.h>
using namespace std;
int m[100005][19];
int main()
{
ifstream cin("rmq.in");
ofstream cout("rmq.out");
int n, q, a;
cin >> n >> q;
for(int i = 1; i <= n; i++){
cin >> a;
m[i][0] = a;
}
for(int j = 1; j <= log2(n); j++){
for(int i = 1; i <= n - (1<<j) + 1; i++){
m[i][j] = min(m[i][j-1], m[i+(1<<(j-1))][j-1]);
}
}
int b;
for(int i = 1; i <= q; i++){
cin >> a >> b;
int x = log2(b - a + 1);
cout << min(m[a][x], m[b-(1<<x) + 1][x]) << '\n';
}
return 0;
}