CF354A Vasya and Robot
题目描述
Vasya 有 $n$ 个物品排成一行。这些物品从左到右依次编号为 $1$ 到 $n$,最左边的物品编号为 $1$,最右边的物品编号为 $n$。每个物品有一个重量,第 $i$ 个物品的重量为 $w_{i}$ 千克。
Vasya 需要收集所有这些物品,但他不会亲自去做。他使用了自己新买的机器人。这个机器人有两个不同的手臂——左手和右手。机器人可以连续执行以下操作:
1. 用左手拿取最左边的物品,花费 $w_{i}·l$ 能量单位($w_{i}$ 是最左边物品的重量,$l$ 是某个参数)。如果上一次操作同样是用左手,那么机器人还要额外花费 $Q_{l}$ 能量单位;
2. 用右手拿取最右边的物品,花费 $w_{j}·r$ 能量单位($w_{j}$ 是最右边物品的重量,$r$ 是某个参数)。如果上一次操作同样是用右手,那么机器人还要额外花费 $Q_{r}$ 能量单位;
很自然地,Vasya 想要编程让机器人消耗尽量少的能量。他请你来解决这个问题。你的任务是计算机器人收集所有物品所需消耗的最少能量。
输入格式
第一行包含五个整数 $n, l, r, Q_{l}, Q_{r}$,满足 $1 \leq n \leq 10^{5}$,$1 \leq l, r \leq 100$,$1 \leq Q_{l}, Q_{r} \leq 10^{4}$。
第二行包含 $n$ 个整数 $w_{1}, w_{2}, \ldots, w_{n}$,满足 $1 \leq w_{i} \leq 100$。
输出格式
输出一行,包含一个整数,表示机器人消耗的最小能量。
说明/提示
考虑第一个样例。由于 $l=r$,我们可以轮流取物品:先从左边取一个,然后从右边取一个,最后从左边取一个。总共机器人消耗 $4·42+4·99+4·3=576$ 能量单位。
第二个样例。最优方案是先从右边取一个物品,然后从左边取一个物品,之后从右边取两个物品。总计消耗 $(2·4)+(7·1)+(2·3)+(2·2+9)=34$ 能量单位。
由 ChatGPT 5 翻译