結果

問題 No.862 XORでX
コンテスト
ユーザー titia
提出日時 2026-07-28 03:43:23
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 76 ms / 2,000 ms
+ 906µs
コード長 996 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 252 ms
コンパイル使用メモリ 96,112 KB
実行使用メモリ 92,288 KB
最終ジャッジ日時 2026-07-28 03:43:34
合計ジャッジ時間 4,693 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

N,X=list(map(int,input().split()))

A=[]
USE=[0]*(10**5+5)

now=4
while N>4:
    if now<=X<now+4:
        now+=4
    else:
        A.append(now)
        A.append(now+1)
        A.append(now+2)
        A.append(now+3)
        now+=4
        N-=4
        
    
for a in A:
    USE[a]=1

S=[]
if sum(USE)>=10**5-10:
    for i in range(1,10**5+5):
        if USE[i]==0:
            S.append(i)

else:
    LIST=[1,2,3,10**5,10**5+1,10**5+2,10**5+3,10**5+4]
    k=X//4*4
    for i in range(k,k+4):
        if i==0:
            continue
        LIST.append(i)

    LIST=sorted(set(LIST))

    for x in LIST:
        if USE[x]==0:
            S.append(x)

for i in range(1<<len(S)):
    if i.bit_count()==N:
        score=0
        L=[]
        for j in range(len(S)):
            if i & (1<<j) != 0:
                score^=S[j]
                L.append(S[j])

        if score==X:
            A+=L
            break

print("\n".join(map(str,A)))
            
    
0