結果

問題 No.3223 K-XOR Increasing Sequence
ユーザー kidodesu
提出日時 2025-08-01 23:03:46
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 221 ms / 2,000 ms
コード長 992 bytes
コンパイル時間 197 ms
コンパイル使用メモリ 82,356 KB
実行使用メモリ 174,692 KB
最終ジャッジ日時 2025-08-01 23:04:07
合計ジャッジ時間 20,435 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 70
権限があれば一括ダウンロードができます

ソースコード

diff #

def main():
    n, k, x, y = map(int, input().split())
    if k == 1:
        Ans = [x] + [x+1+i for i in range(n-2)] + [y]
        if Ans[-2] < Ans[-1]:
            return Ans
        else:
            return []
    if y == 0:
        return []
    if x == 0:
        if k + 1 == n:
            return [x] + [0] * (n-2) + [y]
        if y == 1:
            return []
        Ans = [x] + [2] * (k-2) + [4]
        tmp = 0
        for a in Ans:
            tmp ^= a
        Ans.append(tmp+1)
        while n - 1 - len(Ans):
            Ans.append(Ans[-k])
        Ans.append(y)
        return Ans
    if not k % 2:
        Ans = [x] + [x] * (n-2) + [y]
        return Ans
    if x != 1:
        Ans = [x] + [1] * (k-2)
    else:
        Ans = [x] + [2] * (k-2)
    tmp = 0
    for a in Ans:
        tmp ^= a
    Ans.append(tmp)
    while n - 1 - len(Ans):
        Ans.append(Ans[-k])
    Ans.append(y)
    return Ans

Ans = main()
if Ans:
    print("Yes")
    print(*Ans)
else:
    print("No")
0