結果

問題 No.2771 Personal Space
ユーザー timi
提出日時 2024-06-03 19:08:03
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,081 ms / 2,000 ms
コード長 1,142 bytes
コンパイル時間 219 ms
コンパイル使用メモリ 82,436 KB
実行使用メモリ 129,724 KB
最終ジャッジ日時 2024-12-23 10:41:08
合計ジャッジ時間 19,427 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

T=int(input())
import heapq
import heapq
from heapq import heappop,heappush,heapify
from sys import stdin, setrecursionlimit
input = stdin.readline
readline = stdin.readline
m=-10**10
for i in range(T):
N,M=map(int, input().split())
A=[];ans=[-1]*N
ans[M-1]=1
if M==1:
l,r=2,N
d=r-l+1
heapq.heappush(A,(d*m+l,l,r,d))
elif M==N:
l,r=1,N-1
d=r-l+1
heapq.heappush(A,(d*m+l,l,r,d))
else:
l,r=1,M-1
d=M-1
heapq.heappush(A,(d*m+l,l,r,d))
l,r=M+1,N
d=N-M
heapq.heappush(A,(d*m+l,l,r,d))
for i in range(N-1):
d=heapq.heappop(A)
c,l,r,_=d
if l!=1 and r!=N:
d=(l+r)//2
ans[d-1]=i+2
ll,rr=l,d-1
if ll<=rr:
dd=(rr-ll)//2+1
heapq.heappush(A,(dd*m+ll,ll,rr,dd))
ll,rr=d+1,r
if ll<=rr:
dd=(rr-ll)//2+1
heapq.heappush(A,(dd*m+ll,ll,rr,dd))
elif l==1:
ans[l-1]=i+2
ll,rr=2,r
dd=(rr-ll)//2+1
heapq.heappush(A,(dd*m+ll,ll,rr,dd))
else:
ans[r-1]=i+2
ll,rr=l,r-1
dd=(rr-ll)//2+1
heapq.heappush(A,(dd*m+ll,ll,rr,dd))
print(*ans)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0