結果
問題 | No.2796 Small Matryoshka |
ユーザー |
![]() |
提出日時 | 2024-06-30 17:24:48 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 531 ms / 2,000 ms |
コード長 | 907 bytes |
コンパイル時間 | 154 ms |
コンパイル使用メモリ | 82,356 KB |
実行使用メモリ | 168,436 KB |
最終ジャッジ日時 | 2024-06-30 17:24:54 |
合計ジャッジ時間 | 6,819 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
import sys input = sys.stdin.readline from bisect import * from copy import deepcopy def compress(lst): ''' B: lstを座圧したリスト idx_to_val: indexから元の値を取得するリスト val_to_idx: 元の値からindexを取得する辞書 ''' B = [] val_to_idx = {} idx_to_val = deepcopy(lst) idx_to_val = list(set(idx_to_val)) idx_to_val.sort() for i in range(len(lst)): ind = bisect_left(idx_to_val, lst[i]) B.append(ind) for i in range(len(B)): val_to_idx[lst[i]] = B[i] return B, idx_to_val, val_to_idx N = int(input()) L, R = [-1] * N, [-1] * N for i in range(N): L[i], R[i] = map(int, input().split()) M = 2 * N + 5 A, iv, vi = compress(L + R) D = [0] * M for l, r in zip(L, R): l, r = vi[l], vi[r] D[l] += 1 D[r] -= 1 for i in range(M - 1): D[i + 1] += D[i] print(max(D) - 1)