Description

預燒 (burn-in) 是半導體測試流程的一個步驟,將待測品放進預燒爐 (burn-in oven) 中,在高溫高壓的環境下檢測產品功能。
* 容量限制:預燒爐每次操作可以檢測一個或多個待測品,但一次操作的待測品的批量總和不可超過預燒爐容量上限。
* 預燒時間:預燒爐每次操作的時間為該批次中待測品的最長預燒時間,一旦開始就不能中間加入或取出待測品,即同一次操作的待測品會同時進入預燒爐,也同時離開預燒爐。

給定一台預燒爐,其最大容量上限為 $Q$。有 $N$ 個待測品,已知各待測品的優先順序 ($p_i$)、批量 ($s_i$) 和預燒時間 ($t_i$)。首先將所有待測品依優先順序由小到大排序,在此順序的前提下,將待測品分批,再將各批送入預燒爐檢測。請撰寫一個程式求取最佳分批方法,以在最短時間內檢測完所有待測品。

舉例來說,若預燒爐的容量為 $10$,且三個待測品的資訊如下:

可能的分批方式有:
* A | B | C:即每次操作只檢測一個待測品,總花費時間為 $1+5+6=12$。
* AB | C:第一批次檢測 A 和 B,第二批次檢測 C,總花費時間為 $\max{1,5}+6=11$。
* A | BC:第一批次檢測 A,第二批次檢測 B 和 C,總花費時間為 $1+\max{5,6}=7$。
* ABC:全部放在同一批,但因批量總和 $4+5+3=12$ 超過容量上限 $10$,此分批不合法。

因此在所有合法的分批方式中,檢測完所有待測品的最短時間是 $7$ 單位時間。

Input Format

輸入第一列有兩個正整數 $Q (1 \le Q \le 10000)$ 和 $N (1 \le N \le 16)$,分別代表預燒爐的容量上限以及待測品的數量。接下去有 $N$ 列,每列有三個正整數 $p_i (1 \le p_i \le 1000)$、$s_i (1 \le s_i \le Q)$ 和 $t_i (1 \le t_i \le 1000)$,代表一個待測品的優先順序、批量和預燒時間。輸入保證所有 $p_i$ 值均相異。

本題有三子題組,每組有多筆測試資料,測試資料全對才能獲得該組分數。
* 第一子題組 [31分]:$N \le Q$,所有 $s_i = 1$。
* 第二子題組 [49分]:所有 $t_i = 1$。
* 第三子題組 [20分]:無特殊限制。

Output Format

請輸出一個整數,代表檢測完所有待測品的最短時間。

Sample Input 1

10 3
1 4 1
2 5 5
3 3 6

Sample Output 1

7

Sample Input 2

10 3
3 1 3
2 5 5
1 3 4

Sample Output 2

5

Sample Input 3

3 3
2 2 2
3 2 7
1 2 4

Sample Output 3

13

Sample Input 4

5 3
1 2 7
3 2 7
4 2 2

Sample Output 4

14

Hints

Problem Source

2024 北市賽

TopCoder

User's AC Ratio

100.0% (3/3)

Tags

Problem Setter

Created by roychuang

Subtasks

No. Testdata Range Constraints Score
1 0~7 $N \leq Q \quad \forall s_i = 1$ 31
2 8~17 $\forall t_i = 1$ 49
3 18~29 20

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 65536 1
1 1000 65536 65536 1
2 1000 65536 65536 1
3 1000 65536 65536 1
4 1000 65536 65536 1
5 1000 65536 65536 1
6 1000 65536 65536 1
7 1000 65536 65536 1
8 1000 65536 65536 2
9 1000 65536 65536 2
10 1000 65536 65536 2
11 1000 65536 65536 2
12 1000 65536 65536 2
13 1000 65536 65536 2
14 1000 65536 65536 2
15 1000 65536 65536 2
16 1000 65536 65536 2
17 1000 65536 65536 2
18 1000 65536 65536 3
19 1000 65536 65536 3
20 1000 65536 65536 3
21 1000 65536 65536 3
22 1000 65536 65536 3
23 1000 65536 65536 3
24 1000 65536 65536 3
25 1000 65536 65536 3
26 1000 65536 65536 3
27 1000 65536 65536 3
28 1000 65536 65536 3
29 1000 65536 65536 3