結果
| 問題 |
No.2024 Xer
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-03-07 09:37:57 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,868 bytes |
| コンパイル時間 | 466 ms |
| コンパイル使用メモリ | 82,360 KB |
| 実行使用メモリ | 254,148 KB |
| 最終ジャッジ日時 | 2025-03-07 09:38:06 |
| 合計ジャッジ時間 | 8,332 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 43 RE * 4 |
ソースコード
import sys
sys.setrecursionlimit(100000)
def divide(a,x):
if a==[]:
return a
if x==-1:
return a
if ((X>>x)&1)==0:
la=[]
ra=[]
for i in a:
if (i>>x)&1:
ra.append(i)
else:
la.append(i)
return divide(la,x-1)+divide(ra,x-1)
else:
zr=[]
on=[]
for i in a:
if (i>>x)&1:
on.append(i)
else:
zr.append(i)
on.sort()
zr.sort()
if abs(len(on)-len(zr))>1:
print("No")
exit()
if len(on)>=len(zr):
valid=[]
oc=0
zc=0
for i in range(len(a)):
if i%2==0:
valid.append(on[oc])
oc+=1
else:
valid.append(zr[zc])
zc+=1
flg=True
for i in range(len(a)-1):
if (valid[i]^X)>=valid[i+1] or valid[i]>=(valid[i+1]^X):
flg=False
if flg:
return valid
if len(on)<=len(zr):
valid=[]
oc=0
zc=0
for i in range(len(a)):
if i%2==1:
valid.append(on[oc])
oc+=1
else:
valid.append(zr[zc])
zc+=1
flg=True
for i in range(len(a)-1):
if (valid[i]^X)>=valid[i+1] or valid[i]>=(valid[i+1]^X):
flg=False
if flg:
return valid
N,X=map(int,input().split())
A=list(map(int,input().split()))
A=divide(A,30)
if len(A)!=N:
print("No")
exit()
for i in range(N-1):
if (A[i]^X)>=A[i+1] or A[i]>=(A[i+1]^X):
print("No")
exit()
print("Yes")