結果

問題 No.862 XORでX
ユーザー AngrySadEight
提出日時 2025-01-11 03:17:24
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 185 ms / 2,000 ms
コード長 2,071 bytes
コンパイル時間 776 ms
コンパイル使用メモリ 12,288 KB
実行使用メモリ 14,464 KB
最終ジャッジ日時 2025-01-11 03:17:31
合計ジャッジ時間 6,542 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

diff #

N, X = map(int, input().split())
ans = []

if X == 1:
    if N % 4 == 1:
        ans.append(1)
    elif N % 4 == 2:
        ans.append(2)
        ans.append(3)
    elif N % 4 == 3:
        ans.append(3)
        ans.append(4)
        ans.append(6)
    elif N % 4 == 0:
        ans.append(1)
        ans.append(2)
        ans.append(4)
        ans.append(6)
    now = 8
    while len(ans) < N:
        for j in range(4):
            ans.append(now + j)
        now += 4
elif X == 2:
    if N % 4 == 1:
        ans.append(2)
    elif N % 4 == 2:
        ans.append(1)
        ans.append(3)
    elif N % 4 == 3:
        ans.append(3)
        ans.append(6)
        ans.append(7)
    elif N % 4 == 0:
        ans.append(2)
        ans.append(3)
        ans.append(4)
        ans.append(7)
    now = 8
    while len(ans) < N:
        for j in range(4):
            ans.append(now + j)
        now += 4
elif X == 3:
    if N % 4 == 1:
        ans.append(3)
    elif N % 4 == 2:
        ans.append(1)
        ans.append(2)
    elif N % 4 == 3:
        ans.append(1)
        ans.append(4)
        ans.append(6)
    elif N % 4 == 0:
        ans.append(2)
        ans.append(3)
        ans.append(4)
        ans.append(6)
    now = 8
    while len(ans) < N:
        for j in range(4):
            ans.append(now + j)
        now += 4
else:
    if N % 4 == 1:
        ans.append(X)
    elif N % 4 == 2:
        if X % 4 == 0:
            ans.append(X + 1)
            ans.append(1)
        else:
            ans.append(X - X % 4)
            ans.append(X % 4)
    elif N % 4 == 3:
        for j in range(4):
            if j != X % 4:
                ans.append(X - X % 4 + j)
    else:
        ans.append(X)
        ans.append(1)
        ans.append(2)
        ans.append(3)
    now = 4
    while len(ans) < N:
        if now // 4 == X // 4:
            now += 4
            continue
        for j in range(4):
            ans.append(now + j)
        now += 4
# ans.sort()
assert min(ans) >= 1
assert max(ans) <= 100005
assert len(ans) == N
for j in range(len(ans)):
    print(ans[j])
0