fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. int N;
  8.  
  9. cin >> N;
  10.  
  11. vector<int>V(N);
  12.  
  13. for (int i=0; i<N; i++){
  14.  
  15. cin >> V[i];
  16.  
  17. }
  18.  
  19. vector<int>prova(N+1);
  20.  
  21. for (int i=1; i<N; i++){
  22.  
  23. prova[i]=max(0, V[i-1]-V[i]);
  24.  
  25. }
  26.  
  27. prova[0]=0;
  28.  
  29. prova[N]=0;
  30.  
  31. vector<int>pronza(N);
  32.  
  33. for (int i=1; i<N-1; i++){
  34.  
  35. pronza[i]=max(V[i-1]-V[i+1], 0);
  36.  
  37. }
  38.  
  39. pronza[0]=0;
  40.  
  41. pronza[N-1]=0;
  42.  
  43. vector<int>def(N);
  44.  
  45. for (int i=0; i<N; i++){
  46.  
  47. def[i]=-pronza[i]+prova[i]+prova[i+1];
  48.  
  49. }
  50.  
  51. int masx=0;
  52.  
  53. for (int i=0; i<N; i++){
  54.  
  55. if (def[i]>def[masx]){masx=i;}
  56.  
  57. }
  58.  
  59. V.erase(V.begin()+masx);
  60.  
  61. long long int ris=0;
  62.  
  63. for (int i=1; i<N-1; i++){
  64.  
  65. ris+=max(0, V[i-1]-V[i]);
  66.  
  67. }
  68.  
  69. cout << ris;
  70.  
  71. }
Success #stdin #stdout 0s 5320KB
stdin
8
1000000000 1 1000000000 1 1000000000 1 1000000000 1
stdout
2999999997