CF500C New Year Book Reading

题目描述

小明非常喜欢读书。他一共有 $n$ 本书,编号为 $1\sim n$,第 $i$本书重 $w_i$。 小明计划在暑假的 $m$ 天里每天读一本书,第 $i$ 天读第 $d_i$ 本书,可能会重复读到同一本书。 因为所有的书都是堆成一摞的,所以每次读某本书之前小明都需要先将这本书上面所有的书搬开,拿出这本书,再将搬开的书按原顺序放回去,消耗体力为搬开书的重量之和,读完这本书后将其放在这摞书的最上面。 小明想知道这 $n$ 本书以怎样的初始顺序放置,所搬书消耗总体力最小。

输入格式

第一行两个正整数 $n,m$,表示小明一共有 $n$ 本书,要读 $m$ 天。 第二行 $n$ 个正整数,第 $i$ 个数表示表示第 $i$本书的重量为 $w_i$。 第三行 $m$ 个正整数,第 $i$ 个数表示第 $i$ 天要读第 $d_i$ 本书。

输出格式

一行一个数,表示读完 $m$ 次书所搬书消耗的最小体力值。

说明/提示

对于 $100\%$ 的数据,有 $ 2\leq n\leq 500 $,$ 1\leq m\leq 1000 $,$ 1\leq w_{i}\leq 100 $,$ 1\leq b_{j}\leq n $。