AT_abc201_f [ABC201F] Insertion Sort
题目描述
有 $N$ 个人,编号为 $1$ 到 $N$,他们从左到右排成一列。最初,从左起第 $i$ 个人的编号为 $P_i$。
你的目标是通过重复以下三种操作,使得所有人从左到右按编号升序排列。这些操作可以以任意顺序进行任意多次(也可以不进行)。
- 选择一个整数 $i\ (1 \leq i \leq N)$,支付代价 $A_i$,将第 $i$ 个人 (id 为 $i$ 的人) 移动到任意位置。
- 选择一个整数 $i\ (1 \leq i \leq N)$,支付代价 $B_i$,将第 $i$ 个人移动到最左端。
- 选择一个整数 $i\ (1 \leq i \leq N)$,支付代价 $C_i$,将第 $i$ 个人移动到最右端。
请最小化达到目标所需支付的总代价。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $P_1$ $P_2$ $\ldots$ $P_N$
> $A_1$ $B_1$ $C_1$
> $A_2$ $B_2$ $C_2$
> $\vdots$
> $A_N$ $B_N$ $C_N$
输出格式
输出达到目标所需支付的总代价的最小值。
说明/提示
## 限制条件
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq P_i \leq N$
- $1 \leq A_i, B_i, C_i \leq 10^9$
- $P_i \neq P_j\ (i \neq j)$
- 所有输入均为整数
## 样例解释 1
只需支付代价 $C_3=6$,将第 $3$ 个人移动到最右端,即可使所有人按升序排列。不存在比这更低的总代价,因此答案为 $6$。
## 样例解释 2
按以下顺序操作可以达到最小总代价:
- 支付代价 $B_1=8$,将第 $1$ 个人移动到最左端。
- 支付代价 $C_5=5$,将第 $5$ 个人移动到最右端。
- 支付代价 $C_6=2$,将第 $6$ 个人移动到最右端。
由 ChatGPT 4.1 翻译