結果
問題 |
No.3122 Median of Medians of Division
|
ユーザー |
|
提出日時 | 2025-04-20 19:38:45 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
RE
|
実行時間 | - |
コード長 | 898 bytes |
コンパイル時間 | 541 ms |
コンパイル使用メモリ | 12,032 KB |
実行使用メモリ | 11,648 KB |
最終ジャッジ日時 | 2025-04-20 19:38:51 |
合計ジャッジ時間 | 5,338 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 1 |
other | RE * 40 |
ソースコード
from bisect import bisect_left, bisect_right, insort from sortedcontainers import SortedList class RangeMedianQuery: def __init__(self, A): self.A = A self.N = len(A) self.sl = SortedList() def update(self, i, x): self.A[i] = x # 値の更新(SortedListも使うなら注意) def query_median(self, l, r): B = sorted(self.A[l:r+1]) length = r - l + 1 return B[(length - 1)//2] # 入力読み込み例(実際のコンテストでは標準入力で) N, Q = map(int, input().split()) A = list(map(int, input().split())) query_processor = RangeMedianQuery(A) for _ in range(Q): tmp = list(map(int, input().split())) if tmp[0] == 1: _, i, x = tmp query_processor.update(i - 1, x) else: _, l, r = tmp ans = query_processor.query_median(l - 1, r - 1) print(ans)