結果
問題 |
No.2977 Kth Xor Pair
|
ユーザー |
👑 |
提出日時 | 2024-11-25 07:45:11 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 667 bytes |
コンパイル時間 | 383 ms |
コンパイル使用メモリ | 82,324 KB |
実行使用メモリ | 458,944 KB |
最終ジャッジ日時 | 2024-11-30 23:35:25 |
合計ジャッジ時間 | 41,427 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 30 TLE * 4 |
ソースコード
R=range J=lambda:map(int,input().split()) N,K=J() A=sorted(bin(n|1<<30)[3:]for n in J())+["1"*30] B=[[0]for d in R(30)] for d in R(30): for i in R(N+1):B[d]+=[B[d][-1]+(A[i][d]>'0')] M=N*(N-1)>>1 p=[[[0,N],[0,N]]] a=0 def D(v):return v[1]-v[0] for d in R(30): m,q=0,[[],[]] for v in p: s=[] for l,r in v: i,k=l-1,r while i+1<k: j=(i+k)>>1 if B[d][l]<B[d][j+1]:k=j else:i=j s+=[[[l,k],[k,r]]] m+=D(s[0][0])*D(s[1][1])+(v[0]!=v[1])*D(s[1][0])*D(s[0][1]) for e in R(2): for f in R(2): if D(s[0][e])*D(s[1][f])*(v[0]!=v[1]or e<=f)>0:q[e!=f]+=[[s[0][e],s[1][f]]] if M<K+m:a,K,M,p=a*2|1,K-M+m,m,q[1] else:a,M,p=a*2,M-m,q[0] print(a)