sacgajcvs

Untitled

Jul 19th, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. /*
  2. _____ _ _ _ _
  3. |_ _| |__ ___ / \ _ __ ___| |__ _ _| |
  4. | | | '_ \ / _ \ / _ \ | '_ \/ __| '_ \| | | | |
  5. | | | | | | __// ___ \| | | \__ \ | | | |_| | |
  6. |_| |_| |_|\___/_/ \_\_| |_|___/_| |_|\__,_|_|
  7.  
  8. */
  9. #include<bits/stdc++.h>
  10. #define ll long long
  11. #define rep(i,a,b) for(ll int i=a;i<b;i++)
  12. #define vi vector<ll int>
  13. #define F first
  14. #define S second
  15. #define lbnd lower_bound
  16. using namespace std;
  17. #define N 100005
  18.  
  19. void solve()
  20. {
  21. ll n;
  22. cin>>n;
  23. vi v(n);
  24. map<ll,ll>mp,fr;
  25. vi ans(n,0);
  26. ll sum=0;
  27. rep(i,0,n)
  28. cin>>v[i];
  29. for(ll i=n-1;i>=0;i--)
  30. {
  31. auto it = mp.lbnd(-v[i]);
  32. if(it==mp.end())
  33. ans[i]=0;
  34. else
  35. {
  36. ans[i]=ans[it->S]+1;
  37. sum+=ans[i];
  38. }
  39. fr[v[i]]++;
  40. mp[-v[i]]=i;
  41. }
  42. for(auto i:fr)
  43. sum-=(i.S*(i.S-1))/2;
  44. cout<<sum;
  45. return;
  46. }
  47. int main()
  48. {
  49. ios_base::sync_with_stdio(false);
  50. cin.tie(0);
  51. cout.tie(0);
  52. int TESTS=1;
  53. // cin>>TESTS;
  54. while(TESTS--)
  55. {
  56. solve();
  57. }
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment