fork download
  1. import sys
  2. input = sys.stdin.readline
  3.  
  4. N = int(input())
  5. A = list(map(int, input().split()))
  6.  
  7. pref0 = [0] * (N+1)
  8. pref1 = [0] * (N+1)
  9.  
  10. for i in range(1, N+1):
  11. if i % 2 == 1: # 홀수
  12. pref0[i] = pref0[i-1] + A[i-1]
  13. pref1[i] = pref1[i-1] - A[i-1]
  14. else: # 짝수
  15. pref0[i] = pref0[i-1] - A[i-1]
  16. pref1[i] = pref1[i-1] + A[i-1]
  17.  
  18. ans = -10**30
  19.  
  20. # pref0에서: r 고르고 l-1은 짝수 인덱스여야 함
  21. min_even0 = 0 # pref0[0] (짝수)
  22. for i in range(1, N+1):
  23. ans = max(ans, pref0[i] - min_even0)
  24. if i % 2 == 0:
  25. min_even0 = min(min_even0, pref0[i])
  26.  
  27. # pref1에서: r 고르고 l-1은 짝수 인덱스여야 함
  28. min_even1 = 0 # pref1[0] (짝수)
  29. for i in range(1, N+1):
  30. ans = max(ans, pref1[i] - min_even1)
  31. if i % 2 == 0:
  32. min_even1 = min(min_even1, pref1[i])
  33.  
  34. print(ans)
Success #stdin #stdout 0.08s 14132KB
stdin
5
-1 2 -4 -2 3
stdout
7