問題一覧 > 通常問題

No.2037 NAND Pyramid

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 91
作問者 : milkcoffeemilkcoffee / テスター : nok0nok0 rianoriano
17 ProblemId : 8225 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-08-12 21:57:36

問題文

$N$ 個のブロックが一列に並んでおり、それぞれに 0 または 1 の数字が書かれています。
これらの情報は長さ $N$ の文字列 $S$ として与えられ、左から $i$ 番目のブロックに書かれている数字は $S$ の $i$ 番目の文字と一致します。

この状態から0 または 1 の数字が書かれたブロックを積み上げ、$N$ 段のピラミッドの形にします。
ブロックを下から順に、以下の規則で $1$ 個ずつ置いていきます。

  • 直下にある $2$ 個のブロックの両方に 1 が書かれているとき、0 が書かれたブロックを置く。
  • それ以外のとき、1 が書かれたブロックを置く。
以下は $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もしくは右上の雲マークをクリックしてアカウントを作成してください。