fork download
  1. import sys
  2. input = sys.stdin.readline
  3.  
  4. N = int(input())
  5. A = list(map(int, input().split()))
  6.  
  7. Q = [0] * (N+1)
  8. R = [0] * (N+1)
  9.  
  10. for i in range(1, N+1):
  11. if i % 2 == 1: # 홀수
  12. Q[i] = Q[i-1] + A[i-1]
  13. R[i] = R[i-1] - A[i-1]
  14. else: # 짝수
  15. Q[i] = Q[i-1] - A[i-1]
  16. R[i] = R[i-1] + A[i-1]
  17.  
  18. ans = -10**30
  19.  
  20. # Q: l 홀수 => l-1 짝수 prefix
  21. min_even_Q = Q[0] # j=0 (짝수)
  22. for i in range(1, N+1):
  23. ans = max(ans, Q[i] - min_even_Q)
  24. if i % 2 == 0: # j 짝수만
  25. min_even_Q = min(min_even_Q, Q[i])
  26.  
  27. # R: l 짝수 => l-1 홀수 prefix
  28. INF = 10**30
  29. min_odd_R = INF
  30. for i in range(1, N+1):
  31. if i % 2 == 1: # j 홀수면 후보
  32. min_odd_R = min(min_odd_R, R[i])
  33. ans = max(ans, R[i] - min_odd_R)
  34.  
  35. print(ans)
Success #stdin #stdout 0.11s 14104KB
stdin
5
-1 2 -4 -2 3
stdout
6