#HJ1108. 美食搭配

美食搭配

Ysgg\text{Ysgg} 来到了一家餐厅。菜单上一共有 nn 道不同的菜,第 ii 道菜本身可以带来 aia_i 点满意度。

Ysgg\text{Ysgg} 恰好要选择其中 mm 道菜,并按照某个顺序依次吃完。每道菜最多只能选择一次。

除了每道菜本身的满意度之外,菜单中还有 kk 条搭配规则。每条规则由三个整数 xx、yy 和 cc 描述:如果 Ysgg\text{Ysgg} 吃完第 xx 道菜后,紧接着吃第 yy 道菜,那么还会额外获得 cc 点满意度。

注意,搭配规则是有方向的。例如,若存在从第 xx 道菜到第 yy 道菜的奖励,并不意味着从第 yy 道菜到第 xx 道菜也有相同奖励。

请你帮助 Ysgg\text{Ysgg} 选择恰好 mm 道不同的菜,并确定进食顺序,使最终获得的总满意度尽可能大。

输入

第一行包含三个整数 nn、mm 和 kk(1≤m≤n≤181 \le m \le n \le 18,0≤k≤n(n−1)0 \le k \le n(n-1)),分别表示菜单中的菜品数量、需要选择的菜品数量以及搭配规则数量。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n(0≤ai≤1090 \le a_i \le 10^9),其中 aia_i 表示选择第 ii 道菜本身能够获得的满意度。

接下来 kk 行,每行包含三个整数 xx、yy 和 cc(1≤x,y≤n1 \le x,y \le n,x≠yx\ne y,0≤c≤1090 \le c \le 10^9),表示如果第 xx 道菜后紧接着吃第 yy 道菜,可以额外获得 cc 点满意度。

保证不存在两条规则具有完全相同的有序对 (x,y)(x,y)。

输出

输出一个整数,表示 Ysgg\text{Ysgg} 能够获得的最大总满意度。

样例

Input1

2 2 1
1 1
2 1 1

Output1

3

Input2

4 3 2
1 2 3 4
2 1 5
3 4 2

Output2

12

说明

对于样例 11,可以先吃第 22 道菜,再吃第 11 道菜。两道菜本身共提供 22 点满意度,同时满足规则 2→12\to1,额外获得 11 点满意度,因此总满意度为 33。

对于样例 22,一种最优顺序为 4,2,14,2,1。三道菜本身共提供 4+2+1=74+2+1=7 点满意度,并满足规则 2→12\to1,额外获得 55 点满意度,因此答案为 1212。

数据范围

对于所有测试数据,满足:

  • 1≤m≤n≤181 \le m \le n \le 18;
  • 0≤k≤n(n−1)0 \le k \le n(n-1);
  • 0≤ai≤1090 \le a_i \le 10^9;
  • 0≤c≤1090 \le c \le 10^9。

本题共有 2020 个测试点,每个测试点 55 分。

特殊性质:

  • 性质 A:k=0k=0;
  • 性质 B:m=1m=1;
  • 性质 C:对于所有 ii,均有 ai=0a_i=0;
  • 性质 D:a1=a2=⋯=ana_1=a_2=\cdots=a_n。
测试点编号 nn mm kk 特殊性质
11 ≤4\le 4 ≤12\le 12 无
22 ≤6\le 6 ≤5\le 5 ≤20\le 20
3∼43\sim4 ≤10\le 10 ≤6\le 6 ≤40\le 40
5∼65\sim6 ≤14\le 14 ≤8\le 8 ≤100\le 100
77 ≤18\le 18 11 ≤n(n−1)\le n(n-1) B
88 ≤n\le n 00 A
99 ≤n(n−1)\le n(n-1) C
1010 D
11∼1211\sim12 ≤16\le 16 ≤12\le 12 ≤180\le 180 无
13∼1413\sim14 ≤17\le 17 ≤15\le 15 ≤240\le 240
15∼2015\sim20 ≤18\le 18 ≤306\le 306

统计

相关

在下列比赛中:

HTCSP-S模拟1