結果
| 問題 |
No.1015 おつりは要らないです
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-04-03 23:20:03 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,321 bytes |
| コンパイル時間 | 303 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 21,792 KB |
| 最終ジャッジ日時 | 2024-07-03 06:21:44 |
| 合計ジャッジ時間 | 6,854 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 14 WA * 19 |
ソースコード
def read():
N, X, Y, Z = list(map(int, input().split(" ")))
A = list(map(int, input().split(" ")))
return N, X, Y, Z, A
def pay(a, v=1000):
d = a % v
a = a - d + v
if v < 10000:
nz = 0
else:
nz = a // 10000
a -= nz * 10000
if v < 5000:
ny = 0
else:
ny = a // 5000
a -= ny * 5000
if v < 1000:
nx = 0
else:
nx = a // 1000
a -= nx * 1000
return nx, ny, nz
def exchange(nx, ny, nz, X, Y, Z, INF=10**9+1):
if nz > Z:
ny += (nz - Z) * 2
nz -= Z
if ny > Y:
nx += (ny - Y) * 5
ny -= Y
if nx > X:
return INF, INF, INF
return nx, ny, nz
def solve(N, X, Y, Z, A, INF=10**9+1):
A = sorted(A, reverse=True)
for a in A:
nx, ny, nz = pay(a, 1000)
nx, ny, nz = exchange(nx, ny, nz, X, Y, Z)
if nx == INF:
nx, ny, nz = pay(a, 5000)
nx, ny, nz = exchange(nx, ny, nz, X, Y, Z)
if nx == INF:
nx, ny, nz = pay(a, 10000)
nx, ny, nz = exchange(nx, ny, nz, X, Y, Z)
if nx == INF:
return "No"
X -= nx
Y -= ny
Z -= nz
return "Yes"
if __name__ == "__main__":
inputs = read()
print("%s" % solve(*inputs))