小銭の出し方は何通り?ABC087B - Coins

 

はじめに

個人的「三大朝活」は、筋トレ、冷水シャワー、競プロです。

今日も朝の体操の様子をお届けします。

昨日の反省点は、競プロ、筋トレ、冷水シャワーの順にやってしまったことです。

起き抜けでは、まず問題が頭に入ってきませんでした。

これが「段取り」の大切さですね!?

ということでABC087B - Coinsをやりました。

atcoder.jp

問題の要点

 

整数A, B, C, X(Xは50の倍数)が与えられたとき、

500Al + 100Bm + 50Cn = X

となるような整数l, m, nの組み合わせが何通りあるか出力せよ。

 

回答

素直に総当りしても処理時間は大してかからない基本的な問題でした。


# 500円玉の枚数
a = gets.to_i
# 100円玉の枚数
b = gets.to_i
# 50円玉の枚数
c = gets.to_i
# 合計金額
x = gets.to_i
# 答えの変数
ans = 0
# 全探索
for _500 in 0..a
for _100 in 0..b
for _50 in 0..c
if 500 * _500 + 100 * _100 + 50 * _50 == x
ans +=1
end
end
end
end
# 出力
puts ans
 
同じRuby2.7.1で実行時間が最短の回答はこちら