Submission #1322189

#TimeUsernameProblemLanguageResultExecution timeMemory
1322189Roumak77Mountains (NOI20_mountains)C++20
100 / 100
702 ms45024 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; template<class T> using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>; int main() { ll n; cin >> n; vector<ll> list_n(n, 0); for(ll i = 0; i < n; i++){ cin >> list_n[i]; } vector<ll> forward(n, 0); vector<ll> backward(n, 0); ordered_set<ll> o1; o1.insert(list_n[0]); for(ll i = 1; i < n; i++){ forward[i] = o1.order_of_key(list_n[i]); o1.insert(list_n[i]); } ordered_set<ll> o2; o2.insert(list_n[n - 1]); for(ll i = n - 2; i >= 0; i--){ backward[i] = o2.order_of_key(list_n[i]); o2.insert(list_n[i]); } ll t = 0; for(ll i = 0; i < n; i++){ t += forward[i] * backward[i]; } cout << t << endl; }
#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...