Problem:
Score : 600 points

Problem Statement

Given is an integer sequence A_1, ..., A_N of length N.

We will choose exactly \left\lfloor \frac{N}{2} \right\rfloor elements from this sequence so that no two adjacent elements are chosen.

Find the maximum possible sum of the chosen elements.

Here \lfloor x \rfloor denotes the greatest integer not greater than x.

Constraints

2 \leq N \leq 2\times 10^5

|A_i|\leq 10^9

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
A_1 ... A_N

Output

Print the maximum possible sum of the chosen elements.

Sample Input 1

6
1 2 3 4 5 6

Sample Output 1

12

Choosing 2, 4, and 6 makes the sum 12, which is the maximum possible value.

Sample Input 2

5
-1000 -100 -10 0 10

Sample Output 2

0

Choosing -10 and 10 makes the sum 0, which is the maximum possible value.

Sample Input 3

10
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000

Sample Output 3

5000000000

Watch out for overflow.

Sample Input 4

27
18 -28 18 28 -45 90 -45 23 -53 60 28 -74 -71 35 -26 -62 49 -77 57 24 -70 -93 69 -99 59 57 -49

Sample Output 4

295

Solution in Julia (1.4.0) (judge verdict: Wrong Answer)

parseInt(x)=parse(Int, x)
parseMap(x::Array{SubString{String},1})=map(parseInt, x)

function main()
	n = readline() |> parseInt
	a = readline() |> split |> parseMap
	dp = -10^18*ones(Int,n,3)
	if n==2
		println(max(a[1],a[2]))
	else
		dp[1,1] = a[1]
		dp[1,2] = 0
		dp[1,3] = 0
		dp[2,1] = a[1]
		dp[2,2] = a[2]
		dp[2,3] = 0
		dp[3,1] = a[1]+a[3]
		dp[3,2] = a[2]
		dp[3,3] = max(a[1],a[3])
		for i in 4:n
			dp[i,1] = dp[i-2,1]+a[i]
			dp[i,2] = max(dp[i-2,2]+a[i],dp[i-3,1]+a[i])
			if i==4
				dp[i,3] = max(dp[i-2,3]+a[i],dp[1,2]+a[i],a[i])
			else
				dp[i,3] = max(dp[i-2,3]+a[i],dp[i-3,2]+a[i],dp[i-4,1]+a[i])
			end
		end
		if n%2==0
			println(dp[n,2])
		else
			println(dp[n,3])
		end
	end
end

main()