Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52706 | xhx_the_juruo | 木薯与身高 | C++ | 通过 | 100 | 117 MS | 4160 KB | 415 | 2022-07-20 11:50:54 |
#include<iostream> #include<cstdio> #define ll long long using namespace std; int n,a,b[1000005]; ll ans; int find(int l,int r,int lmt){ int mid; while(l<r){ mid=l+r>>1; if(b[mid]<=lmt) l=mid+1; else r=mid; } return l; } int main(){ scanf("%d",&n); for(int i=1;i<=n;i+=1){ scanf("%d",&a); b[i]=max(b[i-1],a); ans+=1ll*(i-find(1,i,a)); } printf("%lld\n",ans); return 0; }