译自 Italian Olympiad in Informatics (OII) 2025 - Trasporto tronchi。
OII 2025 纪念碑的建造准备工作已经开始。为了清理场地,一些树木被砍伐,现在需要将它们装上卡车运往木工车间。
初始时,第 棵树位于位置 ,卡车位于位置 。
在开始装载之前,可以对一些树木进行修剪:修剪一棵树的成本为 ,可以使树干变得光滑,从而可以在其他光滑的树干上滚动。
树木可以通过两种方式移动:
卡车所在的位置被视为一个空位置。
请帮助组织者确定将所有树木装上卡车的最小代价。
附件中包含一个实现示例 alberi.cpp。
alberi.cpp
你需要实现如下函数:
long long carica(int N, int K, vector<int> A);
评测程序的输入格式如下:
评测程序的输出格式如下:
输出一行一个整数,表示函数 carica 的返回值。
carica
3 2 1 5 6
11
6 3 1 4 5 10 12 14
30
在样例 1 中,一种使代价最小的方案为:
在样例 2 中,一种使代价最小的方案是修剪除了第一棵树之外的所有树。