题目描述
1 から N までの番号のついた N 軒の宝石店があります.
宝石店 i (1 ≤ i ≤ N) では,Ki 種類の宝石が売られています. このうち,j (1 ≤ j ≤ Ki) 種類目の宝石は,大きさが Si,j,値段が Pi,j で,在庫が Ci,j 個あります.
よい 宝石箱とは,以下の条件をすべて満たす宝石箱です.
- 宝石箱の中には,各宝石店で買った宝石が 1 個ずつ入っている.
- 次の M 個の条件をすべて満たす.
- i (1 ≤ i ≤ M) 番目の条件: (宝石店 Vi で買った宝石の大きさ)≤ (宝石店 Ui で買った宝石の大きさ)+Wi
次の Q 個の質問に答えてください. i (1 ≤ i ≤ Q) 番目の質問では,整数 Ai が与えられるので,Ai 個のよい宝石箱を準備するとき,買う宝石の値段の合計の最小値を求めてください. ただし,Ai 個のよい宝石箱が準備できない場合はその旨を答えてください.
输入格式
入力は以下の形式で標準入力から与えられる。
N 宝石店 1 の情報 宝石店 2 の情報 ⋮ 宝石店 N の情報 M U1 V1 W1 U2 V2 W2 ⋮ UM VM WM Q A1 A2 ⋮ AQ
宝石店 i (1 ≤ i ≤ N) の情報は,以下の形式で与えられる.
Ki Si,1 Pi,1 Ci,1 Si,2 Pi,2 Ci,2 ⋮ Si,Ki Pi,Ki Ci,Ki
输出格式
Q 行出力せよ. そのうち i 行目には,Ai 個のよい宝石箱を準備するときに買う宝石の値段の合計の最小値を出力せよ. ただし,Ai 個のよい宝石箱を準備することが不可能な場合は,−1 を出力せよ.
题目大意
有 N 个珠宝商店。
每个商店卖 Ki 种珠宝,第 i 个商店的第 j(1≤j≤Ki) 种珠宝拥有三个独立的属性 (S,P,C) 依次表示重量,价格,数量。
现在有 Q 组询问,每次给定一个 Ai,询问能否够构造 Ai 个“珠宝盒”,如果可以则输出最小的花费(即购买的珠宝的价格之和)否则输出 −1
一个“珠宝盒”是一个包含 N 个珠宝的盒子,且满足如下条件:
- 盒子内部的第 i 个珠宝从第 i 个珠宝商店处购买。
- 满足 M 条约束:
- 对于第 i 条约束:此盒子内第 Vi 珠宝的重量应当不超过第 Ui 个珠宝的重量 +Wi
N,Ki≤30,Si,j≤109,Pi,j≤30,Ci,j≤1012,M≤50
Q≤105,Ai≤3×1013,Wi≤109
translated by Soulist
提示
制約
- 1 ≤ N ≤ 30
- 1 ≤ Ki ≤ 30
- 1 ≤ Si,j ≤ 109
- 1 ≤ Pi,j ≤ 30
- 1 ≤ Ci,j ≤ 1012
- 0 ≤ M ≤ 50
- 1 ≤ Ui,Vi ≤ N
- Ui = Vi
- 0 ≤ Wi ≤ 109
- 1 ≤ Q ≤ 105
- 1 ≤ Ai ≤ 3 × 1013
- 入力は全て整数である.
Sample Explanation 1
宝石店 i で売られている j 種類目の宝石を宝石 (i,j) で表すことにします. 各クエリの答えは,以下のようになります. - A1=1: 宝石 (1,2),(2,2),(3,1) を使う宝石箱を準備すると,コストが 1+1+1=3 となり,最小. - A2=2: 宝石 (1,1),(2,1),(3,1) を使う宝石箱と,宝石 (1,2),(2,3),(3,2) を使う宝石箱を準備すると, コストが (10+10+1)+(1+10+10)=42 となり,最小. - A3=3: 3 つの良い宝石箱を準備することはできない.