Problem:
Score : 300 points

Problem Statement

There is an integer sequence A of length N whose values are unknown.

Given is an integer sequence B of length N-1 which is known to satisfy the following:

B_i \geq \max(A_i, A_{i+1})

Find the maximum possible sum of the elements of A.

Constraints

All values in input are integers.

2 \leq N \leq 100

0 \leq B_i \leq 10^5

Input

Input is given from Standard Input in the following format:

N
B_1 B_2 ... B_{N-1}

Output

Print the maximum possible sum of the elements of A.

Sample Input 1

3
2 5

Sample Output 1

9

A can be, for example, ( 2 , 1 , 5 ), ( -1 , -2 , -3 ), or ( 2 , 2 , 5 ). Among those candidates, A = ( 2 , 2 , 5 ) has the maximum possible sum.

Sample Input 2

2
3

Sample Output 2

6

Sample Input 3

6
0 153 10 10 23

Sample Output 3

53

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Wrong Answer)


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		
		//例
		//B=[2 3 4 8 4 5]
		//A={1 2 4 3 2 3 2}
		
		//各要素が最大になるように、Aを作り、和を求めれば良い。
		//A_0とA_N-2,A_N_1は例外だが、1<= i <=N-3については、
		//A_i=min(B_i-1, B_i, B_i+1)でよいかも
		
		int[] B = new int[N-1];
		for (int i=0;i<N-1;i++) {
			B[i]=sc.nextInt();
		}
		
		int[] A = new int[N];
		
      	if (N==2){
        	A[0]=A[1]=B[0];
        }
		
		if (N>=3){
		A[0]=Math.min(B[0],B[1]);
		A[N-2]=Math.min(B[N-3],B[N-2]);
		A[N-1]=B[N-2];
		
		
		for (int i=1;i<N-2;i++) {
			A[i]=Math.min(Math.min(B[i-1], B[i]) ,B[i+1]);
		}
		
		}
		
		int ans=0;
		
		for (int i=0;i<N;i++) {
			ans += A[i];
		}
		
		System.out.println(ans);
		}
	
}