問題一覧 > 通常問題

No.478 一般門松列列

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 221
作問者 : mai
1 ProblemId : 1489 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2017-01-28 00:04:36

問題文

3つの要素から成る数列v=(a1,a2,a3)が次の条件を満たす時,v門松列であると言い伝えられています.

  1. a1,a2,a3は全て異なる
  2. 3つの要素のうちa2が最も大きい,あるいは最も小さい

さらに,n個の要素(ただし3n)から成る数列w=(a1,...,an)
どの連続した3つの要素を取り出しても門松列であるとき w門松列列であると言います.


例えば,数列 (2,0,1,7,0,1) は,左から2番目から始まる 連続した3つの要素を取り出した場合に限り 門松列を満たさないので,門松列列ではありません.

可哀想なので,この数列も門松列列と呼ぶことができるような定義を考えます.
n 個の要素から成る『連続した3個の要素のうち門松列となるものがちょうど nk2 個ある』数列を n,k と呼ぶことにします.

つまり,(2,0,1,7,0,1)6,1 です.


自然数 nk が与えられます.
n,k を満たす数列を1つ出力してください.存在しない場合は -1 を出力してください.

入力

n k

3n20171
0kn2

出力

n,kを満たす数列を スペース区切り または 改行区切り で1つ出力してください.
ただし,出力する数列の要素は整数かつ0以上109以下の範囲内に収めてください.

最後に改行してください。


C++14によるスペシャルジャッジを使用しています.
解が複数存在するようなケースの場合,どの解を出力してもACします.

サンプル

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

問題文のケースです.
上に示した出力以外の6,1,例えば「2 9 0 1 0 2」を出力しても正答になります.

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

全ての連続した3つの要素が門松列を満たさないような数列を出力します.

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

k=0の時,門松列列です.

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