Pagini recente » Cod sursa (job #3311356) | Cod sursa (job #3324857) | Cod sursa (job #2790652) | Cod sursa (job #3353899) | Cod sursa (job #3330547)
#include <bits/stdc++.h>
#define speed ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define cin in
#define cout out
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int mat[__lg(100000)][100000];
int main()
{
speed
int n, m;
cin >> n >> m;
vector<int> v(n+1);
for (int i = 1; i <= n; i++)
cin >> v[i];
for (int i=1; i<=n; i++) {
mat[0][i] = v[i];
}
for (int k=1; (1 << k) <= n; k++) {
for (int i=1; i+(1<<k)-1 <= n; i++) {
int j=i + (1<<(k-1));
mat[k][i]=min(mat[k-1][i],mat[k-1][j]);
}
}
for (int it = 1; it <= m; it++) {
int x, y;
cin >> x >> y;
int k = __lg(y-x+1);
cout << min(mat[k][x], mat[k][y- (1<<k)+1]) << endl;
}
}