$n = gets.to_i - 1 $v = gets.split.map(&:to_i) $dp = Array.new($n+1, -1) def dfs(n) return $dp[0] = $v[0] if n == 0 return $dp[1] = $v[1] if n == 1 $dp[n] = $v[n] + (0..(n-2)).map {|i| ($dp[i] < 0 ? dfs(i) : $dp[i])}.max return $dp[n] end puts [dfs($n), ($n-1 > 0 ? dfs($n-1) : -1)].max