結果
| 問題 | No.2422 regisys? | 
| コンテスト | |
| ユーザー |  gew1fw | 
| 提出日時 | 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)
            
            
            
        