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: Runtime Error)

//AtCoder Beginner Contest 140 C

import java.util.Scanner;

public class Main{
    static int N;
    static int A[];
    static int B[];
    static int C[];

    public static void main(String args[]){
	Scanner sc = new Scanner(System.in);
	N = sc.nextInt();
	A = new int[N];
	B = new int[N - 1];
	C = new int[N - 1];
	int ans = 0;
	for(int i = 0; i < N; i++){
	    A[i] = 99999;
	}
	for(int i = 0; i < (N - 1); i++){
	    B[i] = sc.nextInt();
	}

	for(int i = 0; i < (N - 1); i++){
	    sort(i);
	}

	for(int i = 0; i < (N - 1); i++){
	    int num = C[i];
	    System.out.println("num : " + num);
	    if(A[num] == 99999){
		A[num] = B[num];
	    }
	    if(A[num + 1] == 99999){
		A[num + 1] = B[num];
	    }
	}

	for(int i = 0; i < N; i++){
	    if(A[i] == 99999){
		A[i] = B[i];
	    }
	    System.out.println("A : " + A[i]);
	    ans = ans + A[i];
	}
	System.out.println(ans);
    }

    static void sort(int i){
	for(int j = 0; j < i; j++){
	    if(C[j] == i && i + 1 < N){
		    i++;
	    }
	}
	int min = B[i];
	int minNum = i;


	for(int h = 0; h < N-1; h++) {
	    if(min >= B[h]) {
		int check = 0;
		for(int j = 0; j < i; j++){
		    if(C[j] == h){
			check = 1;;
		    }
		}
		if(check != 1){
		    min = B[h];
		    minNum = h;
		}
	    }
	}
	C[i] = minNum;
    }
}