Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- #define ull unsigned long long
- using namespace std;
- int main() {
- ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
- freopen("mex.in", "r", stdin);
- ll t;
- cin >> t;
- while (t--) {
- ll n, q;
- cin >> n >> q;
- vector<ll>v(n);
- for (int i=0; i<n; i++) {
- cin >> v[i];
- }
- vector<ll>pmn(n); // prefix minimum
- pmn[0]=v[0];
- for (int i=1; i<n; i++) {
- pmn[i]=min(pmn[i-1],v[i]);
- }
- vector<ll>smn(n); // suffix minimum
- smn[n-1]=v[n-1];
- for (ll i=n-2; i>=0; i--) {
- smn[i]=min(smn[i+1],v[i]);
- }
- smn.push_back(n+1);
- pmn.insert(pmn.begin(),n+1);
- while (q--) {
- ll l,r;
- cin >> l >> r;
- cout << min(smn[r],pmn[l-1]) << endl;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment