提交时间:2022-07-20 13:18:41
运行 ID: 52998
#include <bits/stdc++.h> using namespace std; int a[114514*10],n,b[114514*10],c[114514*10],now=0,no=0; long long ans=0 bool cmp(int x,int y) { if(a[x]!=a[y]) { return a[x]<a[y]; } else { return x<y; } } int main() { scanf("%d",&n); for(int i=1; i<=n; i++) { scanf("%d",&a[i]); b[i]=i; } sort(b+1,b+1+n, cmp); for(int i=1; i<=n; i++) { c[b[i]]=i; } for(int i=1; i<=n; i++) { // printf("%d %d %d\n",now,no,ans); if(a[i]>=a[now]) { now=i; for(int j=c[now]-1; j>no; j--) { ans+=b[j]-now; } no=c[now]; } } // for(int i=1; i<=n; i++) // { // printf("%d ",a[i]); // } // printf("\n"); // for(int i=1; i<=n; i++) // { // printf("%d ",b[i]); // } // printf("\n"); // for(int i=1; i<=n; i++) // { // printf("%d ",c[i]); // } // printf("\n"); printf("%lld\n",ans); return 0; }