问题描述
Snuke正在生成一个长度为N的整数序列:x=(x1,x2,⋯,xN)。对于每个i (1≤i≤N),xi的值有M个候选值:第k个候选值是Ai,k。选择Ai,k会产生成本Ci,k。
此外,在确定x之后,对于每对i,j (1≤i<j≤N),会产生成本∣xi−xj∣×Wi,j。
找到可能产生的最小总成本。
约束条件
- 2≤N≤50
- 2≤M≤5
- $1 \leq A_{i,1} < A_{i,2} < \cdots < A_{i,M} \leq 10^6$
- 1≤Ci,k≤1015
- 1≤Wi,j≤106
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
N M
A1,1 C1,1
A1,2 C1,2
⋮
A1,M C1,M
A2,1 C2,1
A2,2 C2,2
⋮
A2,M C2,M
⋮
AN,1 CN,1
AN,2 CN,2
⋮
AN,M CN,M
W1,2 W1,3 ⋯ W1,N−1 W1,N
W2,3 W2,4 ⋯ W2,N
⋮
WN−1,N
输出
打印答案。
示例输入1
3 2
1 1
5 2
2 3
9 4
7 2
8 2
1 5
3
示例输出1
28
此时的最优选择是x=(5,9,7)。这里产生的各个成本如下。
- 选择x1的候选值A1,2将产生成本C1,2=2。
- 选择x2的候选值A2,2将产生成本C2,2=4。
- 选择x3的候选值A3,1将产生成本C3,1=2。
- 对于(i,j)=(1,2),产生成本∣xi−xj∣×Wi,j=4。
- 对于(i,j)=(1,3),产生成本∣xi−xj∣×Wi,j=10。
- 对于(i,j)=(2,3),产生成本∣xi−xj∣×Wi,j=6。
示例输入2
10 3
19 2517
38 785
43 3611
3 681
20 758
45 4745
6 913
7 2212
22 536
4 685
27 148
36 2283
25 3304
36 1855
43 2747
11 1976
32 4973
43 3964
3 4242
16 4750
50 24
4 4231
22 1526
31 2152
15 2888
28 2249
49 2208
31 3127
40 3221
47 4671
24 6 16 47 42 50 35 43 47
29 18 28 24 27 25 33 12
5 43 20 9 39 46 30
40 24 34 5 30 21
50 6 21 36 5
50 16 13 13
2 40 15
25 48
20
示例输出2
27790
示例输入3
2 2
1 1
10 10
1 1
10 10
100
示例输出3
2