Pagini recente » Cod sursa (job #123344) | Cod sursa (job #2644560) | Cod sursa (job #945429) | Cod sursa (job #2558982) | Cod sursa (job #3318344)
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
const int LOG=22;
int rmq[maxn][LOG];
int query(int l,int r) {
int lung=(r-l+1);
int logg=log2(lung);
return min(rmq[l][logg],rmq[r-(1<<logg)+1][logg]);
}
signed main() {
ifstream cin("rmq.in");
ofstream cout("rmq.out");
int n, m;
cin >> n >> m;
for (int i=1;i<=n;i++) {
cin >> rmq[i][0];
}
for (int j=1;j<=log2(n);j++) {
for (int i=1;i<=n;i++) {
rmq[i][j]=min(rmq[i][j-1],rmq[i+(1<<(j-1))][j-1]);
}
}
for (int i=1;i<=m;i++) {
int l,r;
cin >> l >> r;
cout << query(l,r) << "\n";
}
return 0;
}