Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define int long long
- using namespace std;
- typedef pair<int,int> ii;
- typedef vector<ii> vii;
- const int N = 100005;
- int n,m;
- int a[N],f[N][18];
- signed main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(0);cout.tie(0);
- freopen("rmq.inp","r",stdin);
- freopen("rmq.out","w",stdout);
- cin >> n >> m;
- for(int i=1; i<=n; ++i)
- {
- cin >> a[i];
- }
- for(int i=1; i<=n; ++i)
- {
- f[i][0] = a[i];
- }
- for(int k=1; (1 << k) <= n; ++k)
- for (int i=1; i+(1<<k)-1 <=n; ++i)
- f[i][k] = min(f[i][k-1],f[i+(1<<(k-1))][k-1]);
- while (m--)
- {
- int l,r;
- cin >> l >> r;
- int k = log2(r-l+1);
- cout << min(f[l][k],f[r-(1<<k)+1][k]) << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement