Pagini recente » Cod sursa (job #3240811) | Cod sursa (job #3239468) | Cod sursa (job #2381739) | Cod sursa (job #285062) | Cod sursa (job #3249504)
#include <fstream>
using namespace std;
ifstream cin ("rmq.in");
ofstream cout("rmq.out");
int logn=17;
int main()
{
int n, q;
cin >> n >> q;
int log[n+2];
log[1]=0;
for(int i=2; i<=n; i++)
log[i]=log[i/2]+1;
int a[logn+2][n+2];
for(int i=0; i<n; i++)
cin >> a[0][i];
for(int i=1; i<=logn; i++)
for(int j=0; j+(1<<i)-1<n; j++)
a[i][j]=min(a[i-1][j], a[i-1][j+(1<<i-1)]);
int l, r;
for(int i=1; i<=q; i++)
{
cin >> l >> r;
r--;
l--;
int p=log[r-l+1];
cout << min (a[p][l], a[p][r - (1 << p) + 1]) << '\n';
}
return 0;
}