問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
あなたは paiza ラーニングでプログラミング学習を始めようとしています。
次の表のように、paiza ラーニングの有料プランには 3 つの利用プランがあり、プランごとに利用期間と料金が決まっています。
ただし、キャンペーンにより、初めて有料プランを利用するときに、1 ヶ月プランを利用し、解約せずに 2 ヶ月目を利用すると、2 ヶ月目の料金が無料になります。
また、各プランの料金の払い戻しはできないため、12 ヶ月プランを 11 ヶ月だけ利用して途中で解約した場合でも、7,200 円の料金が発生します。
あなたは A ヶ月と B ヶ月の間に解約をはさんで有料プランを利用しようとしています。
A ヶ月を利用し、解約してから、さらに B ヶ月を利用するものとします。
このとき、それぞれの期間で利用するプランをうまく組み合わせて、合計料金を最小化してください。
・利用例
A = 5, B = 14 の場合を考えます。
・ A(5 ヶ月):1 ヶ月プランを 5 回(キャンペーン対象)
・ B(14 ヶ月):12 ヶ月プラン + 1 ヶ月プランを 2 回
→ 合計金額は 12,480 円 となります。
入力は以下のフォーマットで与えられます。
A B
・ 1 行目では、A ヶ月 → B ヶ月の順でプランを利用したときの最小の料金を出力してください。
・ 2 行目では、A ヶ月分で利用するプランを順に半角スペース区切りで出力してください。
・ 3 行目では、B ヶ月分で利用するプランを順に半角スペース区切りで出力してください。
・ ここで表示するプランとは、X ヶ月プランなら X のことです。
・ B = 0 の場合は、3 行目に 0 を出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ A ≦ 1,000
・ 0 ≦ B ≦ 1,000
10 20
18880
2 6 1 1
2 12 6
5 12
10720
2 1 1 1
12
123 456
347360
2 12 12 12 12 12 12 12 12 12 12 1
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12