CF201C Fragile Bridges

题目描述

你正在玩一款电子游戏,并且你刚刚到达了加分关卡,在这个关卡中,唯一的目标就是获得尽可能多的分数。作为一个完美主义者,你决定在获得该关卡能够得到的最大分数前不会离开。 加分关卡由 $n$ 个小平台依次排成一行,编号从 $1$ 到 $n$,并且有 $(n-1)$ 座桥分别连接相邻的平台。每座桥都非常脆弱,并且对于每座桥来说,已知它从任意一端通过的最大次数,在该次数后桥就会永久坍塌。 玩家的操作如下:首先,他选择一个平台作为主角的起始位置。之后,玩家可以自由地让主角通过尚未被毁坏的桥在平台之间移动。只要主角所在的平台已经没有任何未被毁坏的桥与之相连,关卡就会自动结束。玩家最终获得的分数等于主角在平台间完成的总移动次数。需要注意的是,如果主角经过某座桥的过程中开始移动,则必须按照同一个方向一直移动,直到到达下一个平台。 请你计算:要确保没有人能打破你的记录并让你安心进入下一关,你最多可以获得多少分数。

输入格式

第一行包含一个整数 $n$($2 \leq n \leq 10^{5}$),表示本关卡中的平台数。 第二行包含 $(n-1)$ 个整数 $a_i$($1 \leq a_i \leq 10^{9}$,$1 \leq i < n$),其中 $a_i$ 表示第 $i$ 个与第 $i+1$ 个平台之间的桥可以承受的最大通过次数。

输出格式

输出一个整数,表示该关卡玩家最多可以获得的分数。 不要使用 %lld 作为 C++ 中 64 位整数的读写格式。推荐使用 cin、cout 流或 %I64d。

说明/提示

在样例中获得 $5$ 分的一种方案是从第 $3$ 个平台出发,依次走到 $4$,$3$,$2$,$1$,再到 $2$。此时只有连接 $4$ 和 $5$ 的桥还未被走过,但主角已经远离该桥位置,无法再到达。 由 ChatGPT 5 翻译