結果

問題 No.1015 おつりは要らないです
ユーザー maspy
提出日時 2020-03-16 12:41:38
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 823 bytes
コンパイル時間 148 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 21,580 KB
最終ジャッジ日時 2024-11-28 02:53:05
合計ジャッジ時間 3,452 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3 WA * 1
other AC * 13 WA * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

#!/usr/local/bin/python3.8
import sys
read = sys.stdin.read
readline = sys.stdin.readline
readlines = sys.stdin.readlines


def min_pay(a, X, Y, Z):
    x, y, z = 0, 0, 0
    z = min(Z, a // 10000)
    a -= 10000 * z
    y = min(Y, a // 5000)
    a -= 5000 * z
    x = min(X, a // 1000)
    a -= 1000 * x
    if x < X:
        x += 1
    elif y < Y:
        y += 1
    elif z < Z:
        z += 1
    return x, y, z


def solve(A, X, Y, Z):
    """左から順に、その都度の支払い額を最小にしていく"""
    A = (x + 1 for x in A)
    for a in A:
        x, y, z = min_pay(a, X, Y, Z)
        if 1000 * x + 5000 * y + 10000 * z < a:
            return False
        X -= x
        Y -= y
        Z -= z
    return True


N, X, Y, Z, *A = map(int, read().split())
print('Yes' if solve(A, X, Y, Z) else 'No')
0