Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
119031 陈家宝 木薯与身高 C++ 通过 100 387 MS 11980 KB 636 2024-01-03 13:33:15

Tests(20/20):


#include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=1e6+5; int a[maxn],ans[maxn],n; int id[maxn]; bool cmp(int i,int j){ return a[i]>a[j]; } int front; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]),id[i]=i; sort(id+1,id+n+1,cmp); front=n+1; for(int j=1;j<=n;j++){ int i=id[j],s=j; while(a[id[j+1]]==a[i]&&j+1<=n) j++; for(int x=s;x<=j;x++){ if(front>id[x])continue; ans[id[x]]=id[x]-front; } for(int x=s;x<=j;x++) front=min(front,id[x]); } ll sum=0; for(int i=1;i<=n;i++) sum+=ans[i]; printf("%lld",sum); return 0; }


测评信息: