CF580D.Kefa and Dishes

传统题 时间 2000 ms 内存 256 MiB 9 尝试 20 已通过 5 标签

Kefa and Dishes

题目描述

Kefa 来到一家餐厅。菜单上有 nn 道菜,他恰好需要吃 mm 道,并且每道菜至多吃一次。

第 ii 道菜能带来 aia_i 点满意度。此外有 kk 条额外规则:若 Kefa 紧接着吃完第 xx 道菜后立刻吃第 yy 道菜,中间没有其他菜,则额外获得 cc 点满意度。

请你安排要吃的 mm 道菜及其顺序,使总满意度最大。

输入格式

第一行三个整数 n,m,kn,m,k(1≤m≤n≤181 \le m \le n \le 18,0≤k≤n(n−1)0 \le k \le n(n-1)),分别表示菜品总数、需要吃的菜品数和额外规则数。

第二行 nn 个整数 aia_i(0≤ai≤1090 \le a_i \le 10^9),表示吃第 ii 道菜获得的基础满意度。

接下来 kk 行,每行三个整数 xi,yi,cix_i,y_i,c_i(1≤xi,yi≤n1 \le x_i,y_i \le n,0≤ci≤1090 \le c_i \le 10^9),表示若第 xix_i 道菜恰好紧接在第 yiy_i 道菜之前,则额外获得 cic_i 点满意度。

保证不会出现两条规则具有相同的有序对 (xi,yi)(x_i,y_i)。

输出格式

输出一个整数,表示 Kefa 能得到的最大总满意度。

样例

输入 1

2 2 1
1 1
2 1 1

输出 1

3

输入 2

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

输出 2

12

样例说明

第一组中,先吃第 22 道菜,再吃第 11 道菜,可获得两道菜的基础满意度 22,以及规则带来的 11 点额外满意度,总计 33。

第二组中,可选择顺序 4,2,14,2,1 或 2,1,42,1,4。基础满意度为 1+2+4=71+2+4=7,再满足规则 2→12\to1 得到 55 点额外满意度,总计 1212。

在线编程 IDE

建议全屏模式获得最佳体验