译自 COI 2011 T3。
在一个遥远的国度,有一条大河,沿岸分布着许多村庄。村庄按河流沿岸的顺序从 到 编号。相邻两个村庄之间的距离恰好为 公里。
在编号为 的村庄里,住着一位名叫 Mirko 的村民,他拥有一艘船,专门从事村庄间的客运服务。今天, Mirko 需要从 号村庄出发前往 号村庄,并在途中运送一些乘客。具体来说,今天共有 名乘客需要出行,每名乘客的当前所在村庄和目的村庄均已知晓。
Mirko 的船容量很大,可以同时搭载任意数量的乘客。
例如,乘客 A 需要从 号村庄前往 号村庄,乘客 B 需要从 号村庄前往 号村庄。那么 Mirko 从 号村庄出发后可以这样操作:在 号村庄接上乘客 A,继续行驶至 号村庄接上乘客 B,然后返回 号村庄让乘客 B 下船,再继续行驶至 号村庄让乘客 A 下船,最后前往 M 号村庄。此方案对应下文第一个测试样例。
请编写程序计算 Mirko 从 号村庄出发,将所有乘客运送至目的地,并最终成功到达 号村庄所需行驶的最小总公里数。