005 - シンプルなエディタ
時間制限 8 秒 / メモリ制限 256 MB / 得点 20 / x 12 /
問題
あなたはコンピュータの中で働く妖精である.あなたの今日の仕事はキーボードからの入力を元にエディタを操作することである.
しかし,あなたは寝坊してしまった! 急いで仕事場に向かうとすでにキーボードからの入力が処理されずに溜まっている.今あなたがすべきことは,とにかく今溜まっている入力を全て順に処理した後の文字列を画面に表示することである.
状況を整理しよう.最初エディタには文字列が何も書かれておらず,文字の挿入位置を示す縦線(カーソル)が 1 つあるだけである.
キーボードからの入力には大きく分けて以下の 3 種類が存在する.
-
INSERT
c
-
このとき,あなたはカーソルの左に文字
c
を挿入する.
- より正確には,カーソルの左隣に文字が存在しない場合はカーソルの左隣に,カーソルの左隣に文字が存在する場合はその文字とカーソルとの間に文字 c を挿入する.
-
このとき,あなたはカーソルの左に文字
c
を挿入する.
-
LEFT _
- このとき,あなたはカーソルを 1 文字分左に動かす.ただし,カーソルの左に文字が存在しない場合は何もしない.
- “ _ ” は入力形式を合わせるためのダミーである.
-
RIGHT _
- このとき,あなたはカーソルを 1 文字分右に動かす.ただし,カーソルの右に文字が存在しない場合は何もしない.
- “ _ ” は入力形式を合わせるためのダミーである.
いま溜まっているキーボードからの入力を全て順に処理した後の文字列を求め,出力せよ.カーソルを出力する必要はない.
Input
入力は複数のデータセットからなる.データセットの個数は 50 を超えない.各データセットは次の形式で表される.
N
a1
⋮
aN
1 行目にはキーボードからの入力の数を表す整数 N が与えられる. N は 1 ≤ N ≤ 1000 を満たす.
続く N 行にはキーボードからの入力 a i が順に与えられる. a i は以下の 3 つのいずれかの形式を満たす.
-
INSERT
c
- c は英小文字 1 文字である
- LEFT _
- RIGHT _
INSERT c という形式の入力が 1 つ以上存在することが保証される.
入力の終わりは 1 つのゼロからなる行で表される.
Output
各データセットについて,キーボードからの入力を全て順に処理した後の文字列を一行に出力せよ.
Sample Input
5 INSERT a INSERT g LEFT _ LEFT _ INSERT j 19 INSERT z INSERT y LEFT _ LEFT _ LEFT _ INSERT a RIGHT _ RIGHT _ INSERT a RIGHT _ INSERT n LEFT _ LEFT _ RIGHT _ LEFT _ LEFT _ INSERT n LEFT _ INSERT u 0
Sample Output
jag azunyan