考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC087-B - Coins を解く

ABC087-B - Coins

 

500円のコインがA枚、100円のコインがB枚、50円のコインがC枚あるとき

ちょうどX円となる選び方は何通りあるかを求める問題

 

コインの選び方を全列挙して、X円に一致するパターンを数える方法で解く

全列挙するためには、0枚, 0枚, 0枚 〜 A枚, B枚, C枚 までの

パターンを表す三重ループを書く必要がある

 

三重ループは計算量が多いが

制約が 0 <= A, B, C <= 50 と緩い今回のようなケースであれば問題ない

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

# 入力
A=int(input())
B=int(input())
C=int(input())
X=int(input())

cnt=0
for i in range(A+1):
  for j in range(B+1):
    for k in range(C+1):
      if 500*i+100*j+50*k==X:
        cnt+=1

# 出力
print(cnt)

 

提出結果はACでした