結果
| 問題 | 
                            No.1015 おつりは要らないです
                             | 
                    
| コンテスト | |
| ユーザー | 
                             tachyon777
                         | 
                    
| 提出日時 | 2020-04-04 00:38:29 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 952 bytes | 
| コンパイル時間 | 128 ms | 
| コンパイル使用メモリ | 82,512 KB | 
| 実行使用メモリ | 86,160 KB | 
| 最終ジャッジ日時 | 2024-07-03 06:39:50 | 
| 合計ジャッジ時間 | 3,845 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 27 WA * 6 | 
ソースコード
import sys
readline = sys.stdin.buffer.readline
def even(n): return 1 if n%2==0 else 0
n,sen,gosen,man = map(int,readline().split())
lst1 = list(map(int,readline().split()))
lst1.sort(reverse=True)
for i in range(len(lst1)):
    lst1[i] += 1 #lst1[i]+1円を支払う必要がある
i = 0
l = len(lst1)
while True:
    if i >= l:
        break
    if lst1[i] < 10000:
        break
    else:
        if man > 0:
            mai = min(man,lst1[i]//10000)
            lst1[i] -= mai*10000
            man -= mai
    i += 1
        
lst1.sort(reverse=True)
if man:
    lst1 = lst1[man:]
i = 0
l = len(lst1)
while True:
    if i >= l:
        break
    if lst1[i] < 5000:
        break
    else:
        if gosen > 0:
            lst1[i] -= 5000
            gosen -= 1
    i += 1
lst1.sort(reverse=True)
if gosen:
    lst1 = lst1[gosen:]
need = 0
for i in lst1:
    need += (i+1000-1)//1000
if sen >= need:
    print("Yes")
else:
    print("No") 
            
            
            
        
            
tachyon777