問題一覧 > 通常問題

No.1530 Permutation and Popcount

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 28
作問者 : PCTprobability / テスター : tatyam penguinman
12 ProblemId : 6368 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2021-05-29 18:21:45

問題文

popcount(n)n2 進数表記した時の 1 の個数とします。例えば popcount(11)=3, popcount(64)=1 です。

正整数列 A1,A2,,AK に対して f(A) を以下で定義します。

  • 1i,jK かつ popcount(Ai×Aj)0(mod2) である正整数の組 (i,j) の個数

以下を満たす正整数列の組 (X1,X2,,XP),(Y1,Y2,,YQ) を構築してください。存在しない場合はそのことを報告してください。

  • X,Y(1,2,3,,N)2 個に分割した数列の組である。厳密には以下を満たす。
    • 0P,Q
    • P+Q=N
    • 1XiN
    • 1YjN
    • ij ならば XiXj
    • ij ならば YiYj
    • XiYj
  • f(X)f(Y)=M

入力

N M

  • 入力は全て整数である。
  • 2N300
  • 0MN2

出力

条件を満たす正整数列の組 (X1,X2,,XP),(Y1,Y2,,YQ) が存在しないならば 1 を出力してください。

条件を満たす正整数列の組 (X1,X2,,XP),(Y1,Y2,,YQ) が存在するならば解を 1 個以下の形式で出力してください。

解が複数存在する場合はいずれを出力しても構いません。

P Q
X1 X2  XP
Y1 Y2  YQ

サンプル

サンプル1
入力
5 1
出力
3 2
1 2 5
3 4

f(1,2,5)=4,f(3,4)=3 なので f(X)f(Y)=1 を満たしています。ほかの条件も全て満たしているためこの出力は正解となります。

サンプル2
入力
6 7
出力
-1

条件を満たす数列の組は存在しません。よって 1 を出力してください。

サンプル3
入力
19 43
出力
11 8
13 12 10 18 14 6 5 8 3 16 4 
19 9 17 1 15 7 11 2 

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