結果
問題 |
No.2422 regisys?
|
ユーザー |
![]() |
提出日時 | 2025-06-12 19:20:20 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,757 bytes |
コンパイル時間 | 182 ms |
コンパイル使用メモリ | 82,108 KB |
実行使用メモリ | 186,940 KB |
最終ジャッジ日時 | 2025-06-12 19:20:41 |
合計ジャッジ時間 | 19,035 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 36 WA * 25 |
ソースコード
def main(): import sys input = sys.stdin.read().split() idx = 0 N, M = int(input[idx]), int(input[idx+1]) idx +=2 A = list(map(int, input[idx:idx+N])) idx +=N B = list(map(int, input[idx:idx+N])) idx +=N general = [] member = [] for _ in range(M): T = int(input[idx]) C = int(input[idx+1]) idx +=2 if T == 0: general.append(C) else: member.append(C) general.sort() member.sort() products = [] for a, b in zip(A, B): min_price = min(a, b) products.append((min_price, a, b)) products.sort() g_ptr = 0 m_ptr = 0 count = 0 for p in products: min_p, a, b = p if a <= b: # Try general first while g_ptr < len(general) and general[g_ptr] < a: g_ptr +=1 if g_ptr < len(general): count +=1 g_ptr +=1 else: # Try member while m_ptr < len(member) and member[m_ptr] < b: m_ptr +=1 if m_ptr < len(member): count +=1 m_ptr +=1 else: # Try member first while m_ptr < len(member) and member[m_ptr] < b: m_ptr +=1 if m_ptr < len(member): count +=1 m_ptr +=1 else: # Try general while g_ptr < len(general) and general[g_ptr] < a: g_ptr +=1 if g_ptr < len(general): count +=1 g_ptr +=1 print(N - count) if __name__ == '__main__': main()