Submission #1319824

#TimeUsernameProblemLanguageResultExecution timeMemory
1319824vaishakhvPilot (NOI19_pilot)C++20
25 / 100
1095 ms2616 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define eb emplace_back // faster than push_back xD

// pbds UwU
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
#define oset tree<ll, null_type,less<ll>, rb_tree_tag,tree_order_statistics_node_update> // use pair for ms

// my io library :D
#define m1(x) template<class T, class... U> void x(T&& a, U&&... b)
#define m2(x) (ll[]){(x forward<U>(b),0)...}

m1(pr){cout << forward<T>(a);  m2(cout << " " <<); cout << "\n";}
m1(re){cin >> forward<T>(a); m2(cin >>);}

ll n;
vector<ll> stree;

ll rangemax(ll a, ll b){
    ll s = -1;
    a += n, b += n;
    while (a <= b){
        if (a%2 == 1) s = max(stree[a++], s);
        if (b%2 == 0) s = max(stree[b--], s);

        a /= 2; b /= 2;
    }
    return s;
}

int main() {
	ios::sync_with_stdio(0);
    cin.tie(0);

    ll q; re(n, q);
    stree.resize(2*n);

    vector<ll> h(n);

    for (ll i{}; i < n; i++){
        re(h[i]);
        stree[i+n] = h[i];
    }

    for (ll i = n-1; i >= 0; i--){
        stree[i] = max(stree[2*i], stree[2*i+1]);
    }

    for (ll i{}; i < q; i++){
        ll yi, ans = 0; re(yi);

        for (ll s{}; s < n; s++){
            for (ll e = s; e < n; e++){
                if (rangemax(s, e) <= yi) ans++;
            }
        }

        pr(ans);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...