結果
| 問題 |
No.2422 regisys?
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 14:25:29 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,143 bytes |
| コンパイル時間 | 211 ms |
| コンパイル使用メモリ | 82,816 KB |
| 実行使用メモリ | 133,032 KB |
| 最終ジャッジ日時 | 2025-06-12 14:25:42 |
| 合計ジャッジ時間 | 11,483 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / 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)
gew1fw