/******************************************************************************
                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
int main()
{
	ios_base::sync_with_stdio(false);
    long long int n;
    cin>>n;
    long long int arr[n];
    for(int i =0;i<n;i++)cin>>arr[i];
    if(n<=500){
            long long int cnt = 0;
    for(int i = 0;i<n;i++){
        for(int j = i+1;j<n;j++){
            for(int k = j+1;k<n;k++){
                if(arr[i]<arr[j]&&arr[j]>arr[k])cnt++;
            }
        }
    }
    cout<<cnt<<endl;
    return 0;
    }
    if(n<=10000){
        int pre[n];
        pre[n-1]=0;
        for(int i=n-2;i>=0;i--){
            pre[i]=0;
            for(int j = i+1;j<n;j++)if(arr[j]<arr[i])pre[i]++;
        }
        long long int ans = 0;
        for(int i = 0;i<n;i++){
            for(int j = i+1;j<n;j++)if(arr[j]>arr[i])ans+=pre[j];
        }
        cout<<ans<<endl;
        return 0;
    }
    bool can = false;
    for(int i = 0;i<n-1;i++)if(arr[i]>arr[i+1])can=true;
    if(!can){
        cout<<0<<endl;
        return 0;
    }
	long long int ans = 0;
    for(int c = 0;c<100;c++){
        long long int pre[n];
        long long int suf[n];
        pre[0]=suf[n-1]=0;
        if(arr[0]<c)pre[0]++;
        if(arr[n-1]<c)suf[n-1]++;
        for(int i = 1;i<n;i++){
            pre[i]=pre[i-1];
            if(arr[i]<c)pre[i]++;
        }
        for(int i = n-2;i>=0;i--){
            suf[i]=suf[i+1];
            if(arr[i]<c)suf[i]++;
        }
        for(int i = 1;i<n-1;i++)if(arr[i]==c)ans+=(pre[i-1]*suf[i+1]);
    }
	cout<<ans<<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... |