結果

問題 No.3223 K-XOR Increasing Sequence
ユーザー ゼット
提出日時 2025-08-01 22:30:34
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 194 ms / 2,000 ms
コード長 925 bytes
コンパイル時間 257 ms
コンパイル使用メモリ 82,252 KB
実行使用メモリ 116,860 KB
最終ジャッジ日時 2025-08-01 22:31:00
合計ジャッジ時間 21,087 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 70
権限があれば一括ダウンロードができます

ソースコード

diff #

N,K,X,Y=map(int,input().split())
if K==1:
  result=[0]*N
  result[0]=X
  for i in range(1,N):
    result[i]=result[i-1]+1
  if result[-1]>Y:
    print('No')
    exit()
  result[-1]=Y
  print('Yes')
  print(*result)
  exit()
if Y==0:
  print('No')
  exit()
if K==2 and X==0:
  if N==3:
    print('Yes')
    print(0,0,1)
    exit()
  if Y==1:
    print('No')
    exit()
  result=[0]*N
  for i in range(2,N):
    if i%2==0:
      result[i]=4
    else:
      result[i]=5
  result[-1]=Y
  print('Yes')
  print(*result)
  exit()
from random import randint
result=[0]*N
result[0]=X
for i in range(1,K-1):
  z=randint(2,2**20-1)
  result[i]=z
w=0
for i in range(K):
  w^=result[i]
result[K-1]=w
for i in range(K,N):
  result[i]^=result[i-K]
  if result[i]==0:
    result[i]^=1
    if i+1<N:
      result[i+1]^=1
z=0
for i in range(-(K+1),-1):
  z^=result[i]
if Y<=z:
  print('No')
  exit()
result[-1]=Y
print('Yes')
print(*result)
  
0