結果
問題 |
No.2665 Minimize Inversions of Deque
|
ユーザー |
|
提出日時 | 2025-04-10 21:31:56 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 297 ms / 2,000 ms |
コード長 | 715 bytes |
コンパイル時間 | 964 ms |
コンパイル使用メモリ | 82,632 KB |
実行使用メモリ | 110,480 KB |
最終ジャッジ日時 | 2025-04-10 21:32:09 |
合計ジャッジ時間 | 12,423 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 40 |
ソースコード
from collections import deque T = int(input()) for _ in range(T): N = int(input()) P = [0]+list(map(int,input().split())) k = 0 while 2**k<N: k += 1 T = [0]*(2**k+1) def update(i,x): while i<=2**k: T[i] += x i += i&(-i) def cumsum(i): tot = 0 while i>0: tot += T[i] i -= i&(-i) return tot A = deque([P[1]]) update(P[1],1) ans = 0 for i in range(2,N+1): a = cumsum(P[i]) b = i-1-a if a<b: A.appendleft(P[i]) ans += a else: A.append(P[i]) ans += b update(P[i],1) print(ans) print(*list(A))