結果
問題 |
No.2422 regisys?
|
ユーザー |
![]() |
提出日時 | 2025-06-12 19:22:33 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,143 bytes |
コンパイル時間 | 165 ms |
コンパイル使用メモリ | 82,844 KB |
実行使用メモリ | 133,108 KB |
最終ジャッジ日時 | 2025-06-12 19:23:05 |
合計ジャッジ時間 | 11,884 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 26 WA * 35 |
ソースコード
n, m = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) general = [] mma = [] for _ in range(m): T, C = map(int, input().split()) if T == 0: general.append(C) else: mma.append(C) # Sort buyers in descending order general.sort(reverse=True) mma.sort(reverse=True) max_gen = general[0] if general else 0 max_mma = mma[0] if mma else 0 category1 = [] # Can only be sold to general category2 = [] # Can only be sold to MMA category3 = [] # Can be sold to either for a, b in zip(A, B): can_gen = len(general) > 0 and a <= max_gen can_mma = len(mma) > 0 and b <= max_mma if can_gen and not can_mma: category1.append(a) elif can_mma and not can_gen: category2.append(b) elif can_gen and can_mma: category3.append((a, b)) # Process category1 category1.sort() count1 = 0 i = len(category1) - 1 j_gen = 0 while i >= 0 and j_gen < len(general): if general[j_gen] >= category1[i]: count1 += 1 j_gen += 1 i -= 1 else: i -= 1 remaining_gen = general[j_gen:] # Process category2 category2.sort() count2 = 0 i = len(category2) - 1 j_mma = 0 while i >= 0 and j_mma < len(mma): if mma[j_mma] >= category2[i]: count2 += 1 j_mma += 1 i -= 1 else: i -= 1 remaining_mma = mma[j_mma:] # Process category3 category3_sorted = sorted(category3, key=lambda x: -max(x[0], x[1])) count3 = 0 j_gen_remain = 0 j_mma_remain = 0 for a, b in category3_sorted: can_gen = False can_mma = False if j_gen_remain < len(remaining_gen) and remaining_gen[j_gen_remain] >= a: can_gen = True if j_mma_remain < len(remaining_mma) and remaining_mma[j_mma_remain] >= b: can_mma = True if can_gen and can_mma: if a <= b: j_gen_remain += 1 count3 += 1 else: j_mma_remain += 1 count3 += 1 elif can_gen: j_gen_remain += 1 count3 += 1 elif can_mma: j_mma_remain += 1 count3 += 1 total_sold = count1 + count2 + count3 print(n - total_sold)