結果
問題 |
No.2220 Range Insert & Point Mex
|
ユーザー |
![]() |
提出日時 | 2025-06-12 20:45:19 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,310 bytes |
コンパイル時間 | 184 ms |
コンパイル使用メモリ | 81,924 KB |
実行使用メモリ | 168,648 KB |
最終ジャッジ日時 | 2025-06-12 20:45:36 |
合計ジャッジ時間 | 15,641 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 TLE * 1 -- * 15 |
ソースコード
from collections import defaultdict def main(): import sys input = sys.stdin.read().split() ptr = 0 N = int(input[ptr]) ptr += 1 events = [] for _ in range(N): l = int(input[ptr]) r = int(input[ptr+1]) a = int(input[ptr+2]) ptr += 3 events.append((l, 'add', a)) events.append((r + 1, 'remove', a)) events.sort(key=lambda x: (x[0], 0 if x[1] == 'remove' else 1)) Q = int(input[ptr]) ptr += 1 queries = [] for i in range(Q): x = int(input[ptr]) queries.append((x, i)) ptr += 1 queries.sort(key=lambda x: x[0]) count = defaultdict(int) present = set() res = [0] * Q event_ptr = 0 for x, idx in queries: while event_ptr < len(events) and events[event_ptr][0] <= x: pos, typ, a = events[event_ptr] if typ == 'add': if count[a] == 0: present.add(a) count[a] += 1 else: count[a] -= 1 if count[a] == 0: present.remove(a) event_ptr += 1 mex = 0 while mex in present: mex += 1 res[idx] = mex for num in res: print(num) if __name__ == "__main__": main()