Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int B[100000], a[100000],n;
  6.  
  7. int init()
  8. {
  9.       cin>>n;
  10.       for(int i=1;i<=n;i++) cin>>a[i];
  11.       vector<int> v(a+1,a+n+1);
  12.       sort(v.begin(),v.end());
  13.       unique(v.begin(),v.end());
  14.       for(int i=1;i<=n;i++) {int x= a[i]; a[i]= lower_bound(v.begin(),v.end(),x)-v.begin()+1;}
  15. }
  16. void upd(int v)
  17. {
  18.       while(v<=n){
  19.       B[v]++;
  20.       v+=(v&-v);
  21.       }
  22. }
  23. int get(int v)
  24. {
  25.       int res=0;
  26.       while(v>0){
  27.             res+=B[v];
  28.             v-=(v&-v);
  29.       }
  30.       return res;
  31. }
  32. int main(){
  33.       int sult=0;
  34.       init();
  35.       //for(int i=1;i<=n;i++) cout<<a[i]<<' ';
  36.       upd(a[n]);
  37.       for(int i=n-1;i>=1;i--)
  38.       {
  39.             sult+= get(a[i]-1);
  40.             upd(a[i]);
  41.       }
  42.       cout<<sult;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement