#joi2015yod. [joi2015yo_d]シルクロード (Silk Road)

[joi2015yo_d]シルクロード (Silk Road)

问题

在现今的哈萨克斯坦地区,古代存在着一条被称为“丝绸之路”的贸易路线。

丝绸之路上有 N+1N + 1 个城市,从西向东依次编号为城市 00, 城市 11, \ldots, 城市 NN。城市 i1i - 1 和城市 ii 之间的距离 (1iN1 \leq i \leq N) 是 DiD_i

商人 JOI 出发自城市 00,按照顺序途经各个城市,将丝绸运送到城市 NN。他必须在 MM 天内完成从城市 00 到城市 NN 的移动。JOI 在每一天都可以选择以下两种行动之一:

  • 移动:从当前所在城市向东移动一个城市,需要花费一天时间。如果当前在城市 i1i - 1 (1iN1 \leq i \leq N),则移动到城市 ii
  • 等待:不进行移动,停留在当前城市一天。

移动是困难的,每次移动都会增加 JOI 的疲劳。丝绸之路每天都会发生天气变化,天气越差,移动就越困难。

已知 JOI 可以使用 MM 天中的第 jj 天 (1jM1 \leq j \leq M) 的天气情况为 CjC_j。如果在第 jj 天(1jM1 \leq j \leq M)从城市 i1i - 1 移动到城市 ii,则会增加疲劳度 Di×CjD_i \times C_j。不进行移动而等待的一天不会增加疲劳度。

JOI 希望通过巧妙选择每一天的行动,尽量减少疲劳度进行移动。请计算 JOI 在 MM 天内从城市 00 移动到城市 NN 时,从开始移动到结束期间累积的疲劳度之和的最小值。


输入

输入共有 1+N+M1 + N + M 行。

11 行包含 22 个整数 N,MN, M (1NM1,0001 \leq N \leq M \leq 1,000),以空格分隔。表示丝绸之路上有 N+1N + 1 个城市,JOI 必须在 MM 天内将丝绸运送从城市 00 运送到城市 NN

接下来的 NN 行中的第 ii 行 (1iN1 \leq i \leq N) 包含一个整数 DiD_i (1Di1,0001 \leq D_i \leq 1,000),表示城市 i1i - 1 和城市 ii 之间的距离为 DiD_i

接下来的 MM 行中的第 jj 行 (1jM1 \leq j \leq M) 包含一个整数 CjC_j (1Cj1,0001 \leq C_j \leq 1,000),表示第 jj 天的天气情况为 CjC_j

输出

输出 JOI 在 MM 天内从城市 00 移动到城市 NN 时,从开始移动到结束期间累积的疲劳度之和的最小值,以一行输出。


输入示例 1

3 5
10
25
15
50
30
15
40
30

输出示例 1

1125

在输入示例 1 中,为了使累积的疲劳度最小化,JOI 可以按以下方式移动:

  • 11 天等待。
  • 22 天从城市 00 移动到城市 11。此时累积的疲劳度为 10×30=30010 \times 30 = 300
  • 33 天从城市 11 移动到城市 22。此时累积的疲劳度为 25×15=37525 \times 15 = 375
  • 44 天等待。
  • 55 天从城市 22 移动到城市 33。此时累积的疲劳度为 15×30=45015 \times 30 = 450

在这种移动方式下,JOI 的累积疲劳度为 300+375+450=1,125300 + 375 + 450 = 1,125,这是最小值。


输入示例 2

2 6
99
20
490
612
515
131
931
1000

输出示例 2

31589