fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define pb push_back
  5. #define fi first
  6. #define se second
  7.  
  8. int main() {
  9. ios_base::sync_with_stdio(0);
  10. cin.tie(0); cout.tie(0);
  11.  
  12. int n; cin >> n;
  13. vector<pair<ll,ll>> a;
  14. for(int i = 1; i <= n; i++){
  15. ll x; cin >> x;
  16. if(a.empty())
  17. a.pb({x, 1});
  18. else if(x == a.back().fi)
  19. a.back().se++;
  20. else a.pb({x, 1});
  21. }
  22.  
  23. ll ans = 0;
  24. for(auto v : a)
  25. ans += (v.se * (v.se - 1)) / 2;
  26.  
  27. if(a.size() < 2){
  28. cout << ans;
  29. return 0;
  30. }
  31.  
  32. ll sum_prev = a[0].se;
  33.  
  34. for(int i = 1; i < a.size(); i++){
  35. if(i >= 2){
  36. if((a[i].fi > a[i - 1].fi) == (a[i - 1].fi > a[i - 2].fi)){
  37. sum_prev = a[i - 1].se;
  38. }
  39. }
  40. ans += a[i].se * sum_prev;
  41. sum_prev += a[i].se;
  42. }
  43.  
  44. cout << ans;
  45. return 0;
  46. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
239640778