Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
53014 | AK2022071308 | 木薯与身高 | C++ | 通过 | 100 | 109 MS | 260 KB | 565 | 2022-07-20 13:24:08 |
#include<bits/stdc++.h> using namespace std; struct node{ int num; int rank; }a[10000000]; int n; int cnt,maxc=-1; int bin(int x) { int l=1,r=cnt; while(l<r) { int mid=(l+r)>>1; if(a[mid].num<=x) l=mid+1; else r=mid; } return a[l].rank; } long long ans; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { int x; scanf("%d",&x); if(x>maxc) { cnt++; a[cnt].num=x; a[cnt].rank=i; maxc=x; } else if(x<maxc) { int k=bin(x); ans+=(long long)1*(i-k); } } printf("%lld",ans); }