No.2037 NAND Pyramid
タグ : / 解いたユーザー数 93
作問者 : milkcoffee / テスター : nok0 riano
問題文
$N$ 個のブロックが一列に並んでおり、それぞれに 0
または 1
の数字が書かれています。
これらの情報は長さ $N$ の文字列 $S$ として与えられ、左から $i$ 番目のブロックに書かれている数字は $S$ の $i$ 番目の文字と一致します。
この状態から0
または 1
の数字が書かれたブロックを積み上げ、$N$ 段のピラミッドの形にします。
ブロックを下から順に、以下の規則で $1$ 個ずつ置いていきます。
- 直下にある $2$ 個のブロックの両方に
1
が書かれているとき、0
が書かれたブロックを置く。 - それ以外のとき、
1
が書かれたブロックを置く。
01011
としたときの $5$ 段のピラミッドの例です。
上から $K$ 段目には $K$ 個のブロックが一列に並んで置かれていますが、それらに書かれている数字は何でしょうか。
入力
$N$ $K$ $S$
- $2 \leq N \leq 4 \times 10^5$
- $1 \leq K \leq N-1$
- $N,K$ は整数である
- $S$ は
0
,1
からなる長さ $N$ の文字列
出力
上から $K$ 段目で左から $i$ 番目のブロックに書かれた数字が $i$ 文字目になるような、 0
, 1
からなる長さ $K$ の文字列を出力してください。
サンプル
サンプル1
入力
5 3 01011
出力
001
問題文の例と同じです。上から $3$ 段目のブロックには左からそれぞれ 0
, 0
, 1
と書かれているので、 001
と出力するのが正解となります。
サンプル2
入力
2 1 11
出力
0
サンプル3
入力
16 6 0110010100111011
出力
000001
サンプル4
入力
20 3 01001101011001011011
出力
101
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。