Submission #1181734

#TimeUsernameProblemLanguageResultExecution timeMemory
1181734den1z19Mountains (NOI20_mountains)C++17
64 / 100
2096 ms4932 KiB
#include "bits/stdc++.h"
#include <vector>

using std::cout, std::cin, std::vector, std::string;




void solve(){
long long int n,tmp,count=0;
vector<std::pair<long long int, long long int>> h;
cin >> n;
h.reserve(n);
for (long long int i =0; i<n;i++){
    cin>>tmp;
    auto it = lower_bound(
        h.begin(), h.end(),
        std::make_pair(tmp, i),
        [](auto &a, auto &b){
            return a.first < b.first;
        }
    );
    h.insert(it, std::make_pair(tmp, i));
}

std::sort(h.begin(),h.end());
long long int left=0,right=0;

for (long long int i=2;i<n;i++){
    left=right=0;
    for (long long int j = 0; j<i;j++){
        if (h[j].first == h[i].first) continue;
        if(h[i].second > h[j].second) left++;
        else right++;
    }
    count+=left*right;
}

cout << count << '\n';
}

int main(){
std::ios::sync_with_stdio(false);
cin.tie(nullptr);
unsigned long long ct =1;
// cin >> ct;
while(ct--) solve();
    

}
#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...