Ruby初心者です。
AtCoderの「ABC085C - Otoshidama」について質問です。
問題文
日本でよく使われる紙幣は、10000 円札、5000 円札、1000 円札です。以下、「お札」とはこれらのみを指します。
青橋くんが言うには、彼が祖父から受け取ったお年玉袋にはお札が N 枚入っていて、合計で Y 円だったそうですが、嘘かもしれません。
このような状況がありうるか判定し、ありうる場合はお年玉袋の中身の候補を一つ見つけてください。
なお、彼の祖父は十分裕福であり、お年玉袋は十分大きかったものとします。
制約
1≤N≤2000
1000≤Y≤2×10^7
N は整数である。
Y は 1000 の倍数である。
入力
入力は以下の形式で標準入力から与えられる。
N Y
出力
N 枚のお札の合計金額が Y 円となることがありえない場合は、-1 -1 -1 と出力せよ。
N 枚のお札の合計金額が Y 円となることがありうる場合は、そのような N 枚のお札の組み合わせの一例を「10000 円札 x 枚、5000 円札 y 枚、1000 円札 z 枚」として、x、y、z を空白で区切って出力せよ。
複数の可能性が考えられるときは、そのうちどれを出力してもよい。
私の解答としては以下のものを提出しました。
Ruby
1N, Y =gets.chomp.split.map(&:to_i) 2 3ans = [-1, -1, -1] 4 5for i in (0..N) do #10000円の枚数を固定 6 if 10000*i > Y 7 break 8 elsif 10000*i == Y 9 ans = [i, 0, 0] 10 break 11 else 12 for j in (0..N-i) do #5000円の枚数を固定 13 if 10000*i + 5000*j + 1000*(N-i-j) == Y 14 ans = [i, j, N-i-j] 15 break 16 end 17 end 18 end 19end 20 21puts ans
このような回答で提出したところ、
サンプルデータはACで、b08とb21はWAです。
サンプルデータでエラーが出なかったので、どこが間違っているのかわかりません。
教えていただけると幸いです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/16 03:59