atcoder#AGC011D. [AGC011D] Half Reflector

[AGC011D] Half Reflector

题目描述

高橋君は,ある特殊な装置をたくさん持っています. この装置は筒状で,左右からボールを入れることができます. また,この装置には 2 2 種類の状態 A, B があります. 各状態について,装置にボールを入れたときの動作は次のようになっています.

  • 状態 A の装置にボールを入れると,入れた側と同じ側からボールが飛び出してきて,その後すぐに装置の状態は B に変化します.
  • 状態 B の装置にボールを入れると,入れた側と反対側からボールが飛び出してきて,その後すぐに装置の状態は A に変化します.

装置の状態の変化はとても速いので,1 1 つの装置にボールを入れた後,次にボールが入ってくるまでの間には必ず状態の変化は終わっています.

高橋君は,この装置を N N 個つなげたものを作りました.つまり,

  • 左から i i (1  i  N1 1\ \leq\ i\ \leq\ N-1 ) 番目の装置の右端から飛び出したボールは,すぐに左から i+1 i+1 番目の装置に左端から入ります.
  • 左から i i (2  i  N 2\ \leq\ i\ \leq\ N ) 番目の装置の左端から飛び出したボールは,すぐに左から i1 i-1 番目の装置に右端から入ります.

左から i i 番目の装置の最初の状態は,文字列 S S i i 番目の文字で表されます. 次に高橋君は,一番左の装置の左端からボールを入れ,ボールがどちらかの端から出てくるまで待つということを K K 回行いました. ここで,ボールがいつまで経っても出てこないということは起きないことが証明できます. K K 回ボールを入れた後の各装置の状態を求めてください.

输入格式

入力は以下の形式で標準入力から与えられる。

N N K K S S

输出格式

ボールを入れる操作を K K 回行った後の,各装置の状態を表す文字列を出力せよ. この文字列は N N 文字からなり,i i 番目の文字は左から i i 番目の装置の状態と同じでなければならない.

题目大意

有N个机器排成一排,有两种状态
A:会把球反弹(即让球反方向滚动)
B:让球自由通过(即让球沿原方向滚动)
然后每有一个球撞上机器,这个机器就会改变状态
现在给你N个机器的初始状态,然后你将一个球滚进去K 次,问K次后机器状态
本翻译取自

5 1
ABAAA
BBAAA
5 2
ABAAA
ABBBA
4 123456789
AABB
BABA

提示

制約

  • 1  N  200,000 1\ \leq\ N\ \leq\ 200,000
  • 1  K  109 1\ \leq\ K\ \leq\ 10^9
  • S=N |S|=N
  • S S の各文字は A または B である

Sample Explanation 1

この入力では,一番左の装置の左端からボールを入れると,同じところからボールが出てきます.