結果
問題 |
No.1015 おつりは要らないです
|
ユーザー |
![]() |
提出日時 | 2020-09-09 01:03:52 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 58 ms / 2,000 ms |
コード長 | 1,119 bytes |
コンパイル時間 | 244 ms |
コンパイル使用メモリ | 82,120 KB |
実行使用メモリ | 85,080 KB |
最終ジャッジ日時 | 2024-11-18 07:25:27 |
合計ジャッジ時間 | 2,913 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 33 |
ソースコード
n,x,y,z = map(int,input().split()) a = list(map(int,input().split())) cnt_10000 = 0 rem = [0]*10 for i in range(n): cnt_10000 += a[i]//10000 a[i] %= 10000 rem[a[i]//1000] += 1 if(cnt_10000 <= z): z -= cnt_10000 cnt_10000 = 0 else: cnt_10000 -= z z = 0 cnt_10000 *= 10 if(cnt_10000 <= y*5): y -= cnt_10000//5 cnt_10000 = 0 else: cnt_10000 -= y*5 y = 0 if(cnt_10000 <= x): x -= cnt_10000 cnt_10000 = 0 else: print('No') exit() if(sum(rem) <= z): print('Yes') exit() for i in range(9,-1,-1): if(rem[i] >= z): rem[i] -= z z = 0 break z -= rem[i] rem[i] = 0 for i in range(9,4,-1): if(rem[i] >= y): rem[i-5] += y rem[i] -= y y = 0 break rem[i-5] += rem[i] y -= rem[i] rem[i] = 0 if(sum(rem) <= y): print('Yes') exit() for i in range(4,-1,-1): if(rem[i] >= y): rem[i] -= y y = 0 break y -= rem[i] rem[i] = 0 need = 0 for i,ri in enumerate(rem,1): need += ri*i if(need <= x): print('Yes') else: print('No')