結果
問題 |
No.1570 Blocks
|
ユーザー |
|
提出日時 | 2021-06-27 15:31:59 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,065 bytes |
コンパイル時間 | 190 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 33,016 KB |
最終ジャッジ日時 | 2024-06-25 11:30:17 |
合計ジャッジ時間 | 13,299 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 44 WA * 1 |
ソースコード
import sys #sys.setrecursionlimit(10 ** 6) INF = float('inf') #10**20に変えるのもあり MOD = 10**9 + 7 MOD2 = 998244353 def solve(): def II(): return int(sys.stdin.readline()) def LI(): return list(map(int, sys.stdin.readline().split())) def LC(): return list(input()) def IC(): return [int(c) for c in input()] def MI(): return map(int, sys.stdin.readline().split()) N = II() Block = [0]*N Asum = 0 for n in range(N): A,B = MI() Block[n] = (A,B) Asum += A from operator import itemgetter Bs = sorted(Block, key = itemgetter(1,0),reverse=True) Acum = 0 #print(Bs) I = 0 from heapq import heappop, heappush H = [] for n in range(N): while(I<N): a, b = Bs[I] if(Asum-(Acum+a) <= b): I+=1 heappush(H,-a) else: break #print(H) if not H : print("No") exit() else: Acum += -heappop(H) print("Yes") return solve()