Submission #1190926

#TimeUsernameProblemLanguageResultExecution timeMemory
1190926vusalMountains (NOI20_mountains)C++20
22 / 100
445 ms45036 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; using pii = pair<int,int>; #define int long long typedef tree <pii, null_type, less<pii>, rb_tree_tag, tree_order_statistics_node_update> indexed_set; const int oo = 1e18; const int MAXN = 1e5 + 7; void _() { int n; cin >> n; vector<int>v(n); for(int &i : v) cin >> i; vector<int>l(n), r(n); indexed_set leftset; indexed_set rightset; for(int i = 0; i < n; i++) { l[i] = leftset.order_of_key(make_pair(v[i], -1)); leftset.insert(make_pair(v[i], i)); } for(int i = n - 1; i >= 0; i--) { r[i] = rightset.order_of_key(make_pair(v[i], -1)); rightset.insert(make_pair(v[i], i)); } int sum = 0; for(int i = 0; i < n; i++) { sum += (1LL * l[i] * r[i]); } cout << sum << endl; } signed main() { int tt = 1; // cin >> tt; while(tt--) _(); }
#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...