Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #include <map>
  2. #include <set>
  3. #include <list>
  4. #include <cmath>
  5. #include <ctime>
  6. #include <deque>
  7. #include <queue>
  8. #include <stack>
  9. #include <string>
  10. #include <bitset>
  11. #include <cstdio>
  12. #include <limits>
  13. #include <vector>
  14. #include <climits>
  15. #include <cstring>
  16. #include <cstdlib>
  17. #include <fstream>
  18. #include <numeric>
  19. #include <sstream>
  20. #include <cassert>
  21. #include <iomanip>
  22. #include <iostream>
  23. #include <algorithm>
  24. #include <stdio.h>
  25. #include <fstream>
  26. #define endl "\n"
  27. #define c0 ios_base :: sync_with_stdio(0); cin.tie (0);
  28. #define s second
  29. #define f first
  30. #define ll long long
  31. #define ull unsigned ll
  32. using namespace std;
  33.  
  34. const int MaxN = 1e5 + 17;
  35. const ll INF = 1e9 + 17;
  36. const int MOD = 1e9 + 17;
  37. const double eps = 1e-9;
  38.  
  39. ll a[MaxN], n, Max1, Max = -INF, Sum;
  40. vector < ll int > d;
  41.  
  42. int main()
  43. {
  44. #ifdef DEBUG
  45. freopen (".in", "r", stdin);
  46. freopen (".out", "w", stdout);
  47. #endif
  48. scanf ("%I64d", &n);
  49. for (int i = 1; i <= n; ++ i)
  50. {
  51. scanf ("%I64d", a + i);
  52. if (i >= 2)
  53. d.push_back (abs (a[i - 1] - a[i]));
  54. }
  55. for (int i = 0; i < d.size(); ++ i)
  56. {
  57. if (i % 2 == 0)
  58. Sum += d[i];
  59. else
  60. Sum -= d[i];
  61. Max = max (Sum - Max1, Max);
  62. Max1 = min (Max1, Sum);
  63. }
  64. Sum = 0;
  65. Max1 = 0;
  66. for (int i = 0; i < d.size(); ++ i)
  67. {
  68. if (i % 2 == 1)
  69. Sum += d[i];
  70. else
  71. Sum -= d[i];
  72. Max = max (Sum - Max1, Max);
  73. Max1 = min (Max1, Sum);
  74. }
  75. printf ("%I64d", Max);
  76. return 0;
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement