結果
問題 | No.2977 Kth Xor Pair |
ユーザー | 👑 p-adic |
提出日時 | 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 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 34 ms
53,360 KB |
testcase_01 | AC | 34 ms
53,432 KB |
testcase_02 | AC | 93 ms
76,508 KB |
testcase_03 | AC | 72 ms
76,760 KB |
testcase_04 | AC | 71 ms
76,872 KB |
testcase_05 | AC | 75 ms
76,604 KB |
testcase_06 | AC | 77 ms
76,984 KB |
testcase_07 | AC | 608 ms
158,232 KB |
testcase_08 | AC | 1,111 ms
244,052 KB |
testcase_09 | AC | 992 ms
217,936 KB |
testcase_10 | AC | 989 ms
219,312 KB |
testcase_11 | AC | 1,025 ms
216,368 KB |
testcase_12 | AC | 1,000 ms
216,336 KB |
testcase_13 | AC | 1,108 ms
231,888 KB |
testcase_14 | AC | 574 ms
158,984 KB |
testcase_15 | AC | 935 ms
210,344 KB |
testcase_16 | AC | 1,139 ms
234,952 KB |
testcase_17 | AC | 1,102 ms
235,384 KB |
testcase_18 | AC | 1,123 ms
235,416 KB |
testcase_19 | AC | 1,132 ms
235,616 KB |
testcase_20 | AC | 1,165 ms
233,568 KB |
testcase_21 | AC | 1,126 ms
234,768 KB |
testcase_22 | TLE | - |
testcase_23 | TLE | - |
testcase_24 | TLE | - |
testcase_25 | AC | 1,103 ms
236,640 KB |
testcase_26 | TLE | - |
testcase_27 | AC | 903 ms
186,096 KB |
testcase_28 | AC | 934 ms
185,372 KB |
testcase_29 | AC | 901 ms
185,584 KB |
testcase_30 | AC | 928 ms
185,764 KB |
testcase_31 | AC | 889 ms
187,500 KB |
testcase_32 | AC | 827 ms
188,368 KB |
testcase_33 | AC | 810 ms
184,476 KB |
testcase_34 | AC | 829 ms
184,616 KB |
testcase_35 | AC | 833 ms
184,948 KB |
ソースコード
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)