結果
| 問題 |
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 |
ソースコード
#!/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')
maspy