Submission #1181697

#TimeUsernameProblemLanguageResultExecution timeMemory
1181697mehmetkaganMountains (NOI20_mountains)C++20
100 / 100
582 ms21560 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
using ll = long long;
#define int ll

template<typename T>
using ordered_multiset = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;

int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(0);

    int n;
    cin >> n;
    vector<int> h(n);
    for (int &x : h) cin >> x;

    ordered_multiset<int> left, right;
    for (int i = 0; i < n; ++i) right.insert(h[i]);

    int ans = 0;
    for (int i = 0; i < n; ++i) {
        right.erase(right.find_by_order(right.order_of_key(h[i])));

        int l = left.order_of_key(h[i]);
        int r = right.order_of_key(h[i]);
        ans += l * r;

        left.insert(h[i]);
    }

    cout << ans << '\n';
    return 0;
}
#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...