Christmas Present

2 secs 1024 MB
OxOmiso's icon OxOmiso

問題文

今年もクリスマスの時期がやってきました!

サンタさんであるあなたは,一年間良い子にしていた子供たちにプレゼントを渡そうと思っています。
子供は NN 人おり,おもちゃは全部で MM 種類あります。
i  (1iN)i \;(1≤i≤N) 人目の子供は,欲しいおもちゃ Ai,Bi,Ci,Di,EiA_i , B_i , C_i , D_i , E_i をサンタさんに頼みました。

また,どのおもちゃを貰ったかによって,子供が感じる「嬉しさ」には違いがあります。
具体的には,AiA_i を貰うと pip_i , BiB_i を貰うと qiq_i , CiC_i を貰うと rir_i , DiD_i を貰うと sis_i , EiE_i を貰うと tit_i の「嬉しさ」を感じます。

あなたは経済的な問題により,全員にそのうちどれか 11 つのおもちゃを選んでプレゼントすることにしました。

また,サンタ業界は色々なおもちゃメーカーと繋がりを持っていて,在庫と関係維持のために,全部で MM 種類あるおもちゃにおいて,j  (1jM)j\;(1≤j≤M) 種類目のおもちゃについて,配らなければならない最低限の個数 FjF_j と配ることのできる最大個数 GjG_j が決められています。

つまり,あなたは,jj 種類目のおもちゃを xjx_j 個配るとしたとき,xjx_jFjxjGjF_j≤x_j≤G_j を満たさなければなりません。

この条件を満たし,かつ子ども全員の希望を満たすおもちゃの選び方が存在するか判定し,存在するならば,その中で最適なおもちゃの選び方をした時,子供たちが感じる「嬉しさ」の合計の最大値を求めてください。

制約

5N1035≤N≤10^3
5M1025≤M≤10^2
1Ai,Bi,Ci,Di,EiM1≤A_i,B_i,C_i,D_i,E_i≤M
1pi,qi,ri,si,ti1091≤p_i,q_i,r_i,s_i,t_i≤10^9
1Fi,GiN1≤F_i,G_i≤N

入力

N    MN \;\; M
A1    B1    C1    D1    E1A_1 \;\; B_1 \;\; C_1 \;\; D_1 \;\; E_1
A2    B2    C2    D2    E2A_2 \;\; B_2 \;\; C_2 \;\; D_2 \;\; E_2
......
AN    BN    CN    DN    ENA_N \;\; B_N \;\; C_N \;\; D_N \;\; E_N
p1    q1    r1    s1    t1p_1 \;\; q_1 \;\; r_1 \;\; s_1 \;\; t_1
p2    q2    r2    s2    t2p_2 \;\; q_2 \;\; r_2 \;\; s_2 \;\; t_2
......
pN    qN    rN    sN    tNp_N \;\; q_N \;\; r_N \;\; s_N \;\; t_N
F1    G1F_1 \;\; G_1
F2    G2F_2 \;\; G_2
......
FM    GMF_M \;\; G_M

出力

子供たちが感じる「嬉しさ」の合計の最大値を一行に出力してください。
また,条件を満たすおもちゃの選び方が存在しない場合,-1 を出力してください。

入力例 11

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

出力例 11

5

子供 1,2,3,4,51,2,3,4,5 にそれぞれおもちゃ 1,2,3,4,51,2,3,4,5 を配れば良いです。

入力例 22

5 5
1 3 4 5 2
3 2 5 4 1
1 5 2 4 3
5 2 3 1 4
5 1 3 4 2
3 9 6 3 5
5 2 10 4 7
10 4 2 10 2
6 2 6 5 4
10 4 5 8 4
1 1
1 1
1 1
1 1
1 1

出力例 22

39

子供 1,2,3,4,51,2,3,4,5 にそれぞれおもちゃ 3,5,1,2,43,5,1,2,4 をあげれば良いです。

入力例 33

7 5
1 4 5 2 3
3 4 2 1 5
4 1 3 5 2
4 2 3 1 5
3 2 1 4 5
3 4 2 5 1
3 1 2 4 5
5 8 2 8 4
7 1 9 8 7
6 8 6 7 9
1 3 2 2 7
9 1 3 4 5
7 8 4 3 3
8 1 9 8 1
2 2
2 2
1 2
1 1
1 2

出力例 33

57

入力例 44

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

出力例 44

-1

子ども 1,2,3,4,5,61,2,3,4,5,61,2,3,4,5,61,2,3,4,5,6 を配ればF,GF,G の最低限の個数,最大個数の条件は達成できますが,子ども 66 に希望するおもちゃをあげられません。
子ども全員に希望するおもちゃをあげることができないので,出力すべき値は -1 となります。

入力例 55

5 5
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
20000000 1 1 1 1
1 210000 1 1 1
1 1 1200 1 1
1 1 1 20 1
1 1 1 1 5
1 1
1 1
1 1
1 1
1 1

出力例 55

20211225

謝辞

この問題を作るにあたって,bayashikoさんに多大なご協力を頂きました。ありがとうございました。

Submit


Go (1.21)