AT_bogosortcontest_div2_d Circulating Ball
Description
円周上に $ N $ 個の箱が並んでおり、時計回りに順に箱 $ 1, 2, \ldots, N $ と番号が付けられています。 各箱には高々 $ 1 $ 個のボールが入っています。 最初の状態は `0`, `1` からなる長さ $ N $ の文字列 $ S $ で与えられ、 $ S_i= $ `1` のとき箱 $ i $ には $ 1 $ 個のボールが入っており、 $ S_i= $ `0` のとき箱 $ i $ にはボールが入っていません。
何個でもボールが入る台車を用いて、以下の操作を考えます。
- 箱を $ 1 $ つ選び、その箱の位置に空の台車を置く。その後、以下の手順を繰り返す。
- 台車の位置にある箱の中のボールの有無と台車の中のボールの有無に応じて、以下のいずれかの処理を行う。
- 箱にボールが入っているとき:箱からボールを $ 1 $ つ取り出して台車に入れる。
- 箱が空であり、かつ台車にボールが入っているとき:台車からボールを $ 1 $ つ取り出して箱に入れる。
- 箱も台車も空のとき:何もしない。
- 上記の処理の後、台車にボールが入っていれば、時計回りに次の箱の位置まで台車を進める。台車にボールが入っていなければ、操作を終了する。
各 $ k = 1, 2, \ldots, N $ について、それぞれ独立に以下の問題を解いてください。
- 初期状態から始めて箱 $ k $ の位置に台車を置いたとき、台車が最終的に停止した位置にある箱の番号を求めよ。
なお、この操作において台車が必ず停止することは証明できます。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $
各テストケースは以下の形式で与えられる。
> $ N $ $ S $
Output Format
答えを合計 $ T $ 行で出力せよ。
$ t $ 行目には、 $ t $ 番目のテストケースにおける $ k = 1, 2, \ldots, N $ に対する答えを順に空白区切りで出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ つ目のテストケースについて説明します。
$ k=1 $ の場合、以下のように操作が進みます。
- 箱 $ 1 $ からボールを回収し、台車のボールが $ 1 $ 個になる。台車は空でないので箱 $ 2 $ に進む。
- 空の箱 $ 2 $ へボールを $ 1 $ つ入れ、台車のボールが $ 0 $ 個になる。台車が空になるため、箱 $ 2 $ で停止する。
$ k=2 $ の場合、以下のように操作が進みます。
- 箱 $ 2 $ も台車も空のため何も起こらず、そのまま箱 $ 2 $ で停止する。
$ k=3 $ の場合、以下のように操作が進みます。
- 箱 $ 3 $ からボールを回収し、台車のボールが $ 1 $ 個になる。台車は空でないので箱 $ 1 $ に進む。
- 箱 $ 1 $ からボールを回収し、台車のボールが $ 2 $ 個になる。台車は空でないので箱 $ 2 $ に進む。
- 空の箱 $ 2 $ へボールを $ 1 $ つ入れ、台車のボールが $ 1 $ 個になる。台車は空でないので箱 $ 3 $ に進む。
- 空の箱 $ 3 $ (最初のステップでボールを回収したため空になっている)へボールを $ 1 $ つ入れ、台車のボールが $ 0 $ 個になる。台車が空になるため、箱 $ 3 $ で停止する。
$ 2 $ つ目のテストケースについて、すべての箱が初期状態で空です。 よって、どの箱 $ k $ から開始しても、箱も台車も空のため何も起こらず、そのまま箱 $ k $ で停止します。
### Constraints
- $ 1 \leq T \leq 10^5 $
- $ 2 \leq N \leq 2 \times 10^5 $
- $ S $ は `0`, `1` からなる長さ $ N $ の文字列
- すべてのテストケースについての $ N $ の総和は $ 2 \times 10^5 $ 以下
- 入力される数値はすべて整数