Submission #1335053

#TimeUsernameProblemLanguageResultExecution timeMemory
1335053lunarechoMountains (NOI20_mountains)C++20
100 / 100
375 ms23920 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
#define ll long long
typedef __gnu_pbds::tree<pair<ll, int>, __gnu_pbds::null_type, less<pair<ll, int>>, 
        __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update> ordered_set;
#define F first
#define S second


int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    cin>>n;
    vector<ll> a(n), b(n);
    ordered_set os;
    for(int i=0;i<n;++i) {
        cin>>a[i];
        b[i] = os.order_of_key({a[i], -1});
        os.insert({a[i], i});
    }
    os.clear();
    ll ans = 0;
    for(int i=n-1;i>=0;--i) {
        ans += (b[i] * os.order_of_key({a[i], -1}));
        os.insert({a[i], 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...