結果
| 問題 |
No.2771 Personal Space
|
| コンテスト | |
| ユーザー |
timi
|
| 提出日時 | 2024-06-03 19:07:11 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 889 ms / 2,000 ms |
| コード長 | 994 bytes |
| コンパイル時間 | 324 ms |
| コンパイル使用メモリ | 81,792 KB |
| 実行使用メモリ | 129,764 KB |
| 最終ジャッジ日時 | 2024-12-23 10:40:44 |
| 合計ジャッジ時間 | 19,839 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 24 |
ソースコード
T=int(input())
import heapq
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)
timi