問題一覧 > 通常問題

No.1228 I hate XOR Matching

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 43
作問者 : tyawanmusityawanmusi / テスター : optopt
2 ProblemId : 4613 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2020-09-11 21:47:20

元ネタ

XOR Matching
面白い問題です。

問題文

以下の条件を満たす整数列 a={a1,a2,,aN} が存在するならば 1 つ構築してください。

  • 1N40
  • 0ai<220
  • i (0i<220) は高々 2 回しか a に現れない
  • a の空でない部分列 2N1 個のうち、部分列の bitwise XOR が K であるものがちょうど X 個ある。

制約

  • 入力は全て整数
  • 0K<220
  • 0X109

入力

K X

1 行で K,X が空白区切りで与えられます。

出力

Yes / No
N
a1 a2  aN

条件を満たす数列が存在しない場合はNo1 行に出力してください。
そうではない場合、1 行にYesを出力したあとに 2 行出力してください。
2 行目には数列の長さ N を、3 行目には数列 a を空白区切りで出力してください。
最後に改行してください。

上記の指定に沿わない出力がなされた時の判定は未定義です。

サンプル

サンプル1
入力
3 2
出力
Yes
2
0 3

a の部分列を列挙すると (0,3),(0),(3) となります。
このうち、部分列の xor3 であるものは (0,3),(3)2 個であるため、条件を満たしています。

サンプル2
入力
5 8
出力
Yes
4
5 0 0 5

(0,5)2 個あります。

サンプル3
入力
0 3
出力
Yes
3
0 1 1
サンプル4
入力
0 2
出力
No

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。