Submission #1319838

#TimeUsernameProblemLanguageResultExecution timeMemory
1319838vaishakhvPilot (NOI19_pilot)C++20
31 / 100
85 ms9808 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<pair<ll,ll>, null_type,less<pair<ll,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); oset hs; for (ll i{}; i < n; i++){ re(h[i]); hs.insert({h[i], 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; re(yi); ll ans = hs.order_of_key({yi, 1e18}); pr(ans*(ans+1) / 2); } }
#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...