AtCoder ABC 209 B – Can you buy them all? Python解説

スポンサーリンク

Can you buy them all?

高橋商店では N 個の商品が売られています。i(1≤i≤N) 番目の商品の定価は Ai円です。
今日はセールが行われており、偶数番目の商品は定価の 1 円引きの値段で買うことができます。奇数番目の商品は定価で売られています。
あなたの所持金は X 円です。これら N 個の商品を全て買うことができますか?

AtCoder Beginner Contest「Can you buy them all?」

制限も厳しくないので、ひとつずつ商品の値段を足していき、最終的にX円で買えるかどうかみていきます。偶数番目の商品は定価から1円引きになりますが、データ上では0番から始まるため、奇数番目の商品という扱いになるので注意です。

n, x = map(int, input().split())
a = list(map(int, input().split()))

result = 0

for i in range(n):
    if i % 2 != 0:
        result += a[i] - 1
    else:
        result += a[i]
    
print("Yes" if x >= result else "No")

商品の値段はresultに足し合わせていきます。奇数番目の商品は定価から1円引きになるため、resultに足す際に1円引いています。偶数番目の商品は定価を足し、最後に所持金Xとresultを比較して、すべて買うことができればYes、できなければNoを出力して完了です。