CF2045D.Aquatic Dragon
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你居住在一个由 N 个岛屿组成的群岛中,这些岛屿排列成一条直线。岛屿从 1 开始依次编号到 N。相邻的岛屿 i 和 i+1 之间有单向水下隧道:一条从岛 i 到 i+1,另一条反向。而每条隧道只能走一次。
你和一条龙同行。龙的耐力以非负整数表示,用来施展游泳和飞行能力。初始时,其耐力为 0。
每个岛上都有一个魔法神社,当你第一次到达某岛时,会立即将龙的耐力增加 Pi(无论龙身处何地)。这个过程无需时间。
在某个岛上,你可以做以下三种移动:
- 如果你和你的龙在同一岛上,可以让龙游到相邻岛屿,前提是龙的耐力至少是 D。该操作会消耗耐力 D,耗时 Ts 秒。
- 如果你和你的龙在同一岛上,可以让龙飞到相邻岛屿,前提是龙的耐力不为零。此举会将耐力归零,耗时 Tf 秒。
- 你可以单独通过水下隧道步行到相邻岛屿,这需要花费 Tw 秒。一旦你通过这条隧道,就不能再次使用。
请注意,游泳和飞行时不使用隧道。
你和龙当前在岛屿 1 上。你的任务是带着龙到达岛屿 N,请计算出任务完成的最短时间。
输入格式
第一行包含五个整数 N、D、Ts、Tf 和 Tw,其中 2≤N≤200,000,1≤D,Ts,Tf,Tw≤200,000。
第二行包含 N 个整数 Pi,满足 1≤Pi≤200,000。
输出格式
输出一个整数,为到达岛屿 N 的最短时间。
输入输出样例
输入#1
5 4 2 9 1 1 2 4 2 1
输出#1
28
输入#2
5 4 2 1 1 1 2 4 2 1
输出#2
4
输入#3
3 4 2 10 1 3 1 2
输出#3
16
说明/提示
示例解释 #1
以下是完成任务的最短事件序列:
- 在岛 1 的神社将龙的耐力增加到 1。
- 带龙飞到岛 2,神社令龙的耐力增至 2。
- 单独走到岛 3,神社令龙的耐力增至 6。
- 单独走到岛 4,神社令龙的耐力增至 8。
- 单独走回岛 3。
- 单独走回岛 2。
- 带龙游回岛 3,此时龙的耐力为 4。
- 带龙游到岛 4,此时龙的耐力为 0。
- 单独走到岛 5,神社令龙的耐力增至 1。
- 单独走回岛 4。
- 带龙飞到岛 5。
示例解释 #2
对于 1≤i<5,重复以下过程:在岛 i 的神社增加龙的耐力,然后带龙飞到岛 i+1。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?