fork(2) download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. #define ll long long
  5. #define ull unsigned ll
  6. #define all(x) x.begin(), x.end()
  7. const ll MOD = 1e9 + 7;
  8. const int MAX = 5000010;
  9. int lastInc[MAX] = {};
  10.  
  11. ll a[100010], dp[100010][2];
  12. int n;
  13. ll F(int i, int isFlipped)
  14. {
  15. if (i > n)
  16. return 0;
  17. if (dp[i][isFlipped])
  18. return dp[i][isFlipped];
  19. ll x = a[i];
  20. if (isFlipped)
  21. x = -x;
  22. ll y = x + F(i + 1, 0);
  23. ll z = -x + F(i + 1, 1);
  24. return dp[i][isFlipped] = max(y, z);
  25. }
  26.  
  27. int main()
  28. {
  29.  
  30. cin >> n;
  31. for (size_t i = 1; i <= n; i++)
  32. {
  33. cin >> a[i];
  34. }
  35. cout << F(0, 0) << endl;
  36. }
Success #stdin #stdout 0s 37104KB
stdin
Standard input is empty
stdout
0