ABC140 C - Maximal Value
備忘録
問題
回答
"use strict" function Main(input) { input = input.trim().split('\n'); const N = Number(input[0].trim()); const B = input[1].trim().split(' ').map(Number); let cnt = N-2; let ret = B[0] + B[cnt]; for(let i=0; i<cnt; i++){ ret += Math.min(B[i], B[i+1]) } console.log(ret); } Main(require("fs").readFileSync("/dev/stdin", "utf8"));
考え方
整数列A
の値は常にB[i]
またはB[i+1]
の小さいほう(Math.min(B[i], B[i+1])
)となる。
そのため、整数列のB
回ループを回して、単純に足して算出すればよい。
ただし、整数列A
の一番最初(A1
)は必ずB[0]
であること、
整数列A
の一番最初(An
)は必ずB[N-1]
であることを気を付ける。