#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<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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |