Pagini recente » Cod sursa (job #3142624) | Cod sursa (job #583665) | Profil Robybrasov | Cod sursa (job #2652331) | Cod sursa (job #2900720)
//#include <bits/stdc++.h>
//using namespace std;
//int v[100001],mat[100001][34];
//int main() {
// int n,m,a,b;
// cin>>n>>m;
// for(int i=1;i<=n;i++)
// {cin>>v[i]; mat[i][0]=v[i];}
//
// int j=1;
// for(int x=2;x<=n;x=(x<<1),j++)
// for(int i=1;i<=n-x+1;i++)
// mat[i][j]=min(mat[i][j-1],mat[i+x>>1][j-1]);
//
// for(int i=1;i<=m;i++)
// {
// cin>>a>>b;
// cout<<min(mat[a][int(log2(b-a-1))],mat[b+1-(int)pow(2,int(log2(b-a-1)))][int(log2(b-a-1))]);
//
//
//
// }
//
//
//
//
//}
#include <iostream>
using namespace std;
const int NMAX = 100000;
int N, Q;
int rmq[20][NMAX + 5], lg[NMAX + 5];
int main() {
cin >> N >> Q;
for (int i = 1;i <= N;++i) {
cin >> rmq[0][i];
}
lg[1] = 0;
for (int i = 2;i <= N;++i) {
lg[i] = lg[i / 2] + 1;
}
for (int p = 1;(1 << p) <= N;++p) {
for (int i = 1;i + (1 << p) - 1 <= N;++i) {
rmq[p][i] = min(rmq[p - 1][i], rmq[p - 1][i + (1 << (p - 1))]);
}
}
for (int test = 1;test <= Q;++test) {
int a, b, p;
cin >> a >> b;
p = lg[b - a + 1];
cout << min(rmq[p][a], rmq[p][b - (1 << p) + 1]) << "\n";
}
return 0;
}