fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. int main() {
  6. int n ; cin>>n;
  7. vector<int>arr(n+1);
  8. for(int i = 1; i<=n; i++){
  9. cin>>arr[i];
  10. }
  11. int tsum = 0 ;
  12. int prev = 0 ;
  13. arr[0] =INT_MAX; int start;
  14. for(int i = 1 ; i<=n;i++){
  15. if(arr[i]-arr[i-1]!=1){
  16. start = i;
  17. tsum += arr[start];
  18. prev=0;
  19. }
  20. else if(arr[i]-arr[i-1]==1){
  21. tsum+= prev + (i-start+1)*arr[i];
  22. }
  23. prev = prev+ (i-start+1)*arr[i];
  24.  
  25. }
  26. for(int i = 1 ; i<=n;i++){
  27. if(arr[i]-arr[i-1]!=0){
  28. start = i;
  29. prev =0 ;
  30. tsum += arr[start];
  31.  
  32. }
  33. else if(arr[i]-arr[i-1]==0){
  34. tsum+= prev + (i-start+1)*arr[i];
  35. }
  36. prev = prev+ (i-start+1)*arr[i];
  37.  
  38. }
  39.  
  40. int arrsum = accumulate(arr.begin()+1,arr.end(),0);
  41. tsum-=arrsum;
  42. cout<<tsum;
  43. return 0;
  44. }
Success #stdin #stdout 0.01s 5320KB
stdin
6 
5 8 8 10 11 12 
stdout
147