不开O2:
https://www.luogu.com.cn/record/73193868
开O2:
https://www.luogu.com.cn/record/73193899
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define inf 2000000000
#define ldb long double
#define db double
#define ft float
#define myset(a,b,c,d) for(int i=b;i<=c;i++)a[i]=d;
using namespace std;
int en[30005],beg[30005];
ll a[30005];
int main()
{
int n;
cin>>n;
for(register/*寄存器卡常*/ int i=1;i<=n;++i)scanf("%lld",&a[i]);
for(register int i=1;i<=n;++i/*前置++卡常*/)
for(register int j=i+1;j<=n;++j)
{
bool f=a[i]<a[j];//这里不用if可以使常数下降很多
en[j]+=f;
beg[i]+=f;
}
ll sum=0;
for(register int i=1;i<=n;++i)
{
sum+=1ll*beg[i]*en[i];
}
cout<<sum;
return 0;
}