Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36089 | A21μΘ_wjy | 【S】T2 | C++ | 通过 | 100 | 407 MS | 1036 KB | 805 | 2025-02-07 15:35:12 |
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=1e4+7; int n; int p[maxn],inv[maxn]; int a[maxn]; int L[maxn<<2]; int R[maxn<<2]; signed main(){ cin>>n; for(int i=1;i<=n;i++)cin>>p[i],inv[p[i]]=i; int Ans=0; for(int i=1;i<=n;i++){ int ps=inv[i]; a[ps]=0; for(int j=1;j<=n;j++){ if(p[j]<i)a[j]=-1; else if(p[j]>i) a[j]=1; } int S=0; for(int j=ps;j>=1;j--){ S+=a[j]; L[S+n]+=j; }S=0; for(int j=ps;j<=n;j++){ S+=a[j]; R[S+n]+=j; } int Sum=0; for(int i=0;i<=n*2;i++)Sum+=L[i]*R[2*n-i],L[i]=R[2*n-i]=0; Ans+=Sum*i; } cout<<Ans<<endl; return 0; }