今年もクリスマスの時期がやってきました!
サンタさんであるあなたは,一年間良い子にしていた子供たちにプレゼントを渡そうと思っています。
子供は 人おり,おもちゃは全部で 種類あります。
人目の子供は,欲しいおもちゃ をサンタさんに頼みました。
また,どのおもちゃを貰ったかによって,子供が感じる「嬉しさ」には違いがあります。
具体的には, を貰うと , を貰うと , を貰うと , を貰うと , を貰うと の「嬉しさ」を感じます。
あなたは経済的な問題により,全員にそのうちどれか つのおもちゃを選んでプレゼントすることにしました。
また,サンタ業界は色々なおもちゃメーカーと繋がりを持っていて,在庫と関係維持のために,全部で 種類あるおもちゃにおいて, 種類目のおもちゃについて,配らなければならない最低限の個数 と配ることのできる最大個数 が決められています。
つまり,あなたは, 種類目のおもちゃを 個配るとしたとき, は を満たさなければなりません。
この条件を満たし,かつ子ども全員の希望を満たすおもちゃの選び方が存在するか判定し,存在するならば,その中で最適なおもちゃの選び方をした時,子供たちが感じる「嬉しさ」の合計の最大値を求めてください。
子供たちが感じる「嬉しさ」の合計の最大値を一行に出力してください。
また,条件を満たすおもちゃの選び方が存在しない場合,-1
を出力してください。
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
5
子供 にそれぞれおもちゃ を配れば良いです。
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
39
子供 にそれぞれおもちゃ をあげれば良いです。
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
57
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
-1
子ども に を配れば の最低限の個数,最大個数の条件は達成できますが,子ども に希望するおもちゃをあげられません。
子ども全員に希望するおもちゃをあげることができないので,出力すべき値は -1
となります。
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
20211225
この問題を作るにあたって,bayashikoさんに多大なご協力を頂きました。ありがとうございました。