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...