提交时间:2025-02-07 15:16:23

运行 ID: 36079

#include<bits/stdc++.h> using namespace std; const int N=1e4+10; long long ans; int n,a[N],sum; vector<int> cnt[N<<1]; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++){ sum=0; for(int j=i;j>=1;j--){ if(a[j]>a[i]) sum++; else if(a[j]<a[i]) sum--; cnt[sum+N].push_back(j); } sum=0; for(int j=i;j<=n;j++){ if(a[j]>a[i]) sum++; else if(a[j]<a[i]) sum--; for(int k=0;k<cnt[N-sum].size();k++){ ans+=1ll*cnt[N-sum][k]*j*a[i]; } } for(int j=1;j<N<<1;j++) cnt[j].clear(); } printf("%lld",ans); return 0; }