AT_past19_e コメントの除去
Description
> あなたは C 言語に似たコメントアウトの仕組みを実装してみることにしました。
英小文字、 `/` および `*` からなる長さ $ N $ の文字列 $ S $ が与えられます。
あなたは $ S $ に対して以下の一連の操作を行います。
1. 整数値を取る変数 $ x $ を用意する。はじめ $ x $ は $ 1 $ で初期化されている。
2. 次の条件を満たす $ n $ を探す。
- $ x \leq n \leq |S| - 1 $
- $ S $ の $ n $ 文字目は `/` 、 $ S $ の $ n + 1 $ 文字目は `*`
3. 2.の条件を満たす $ n $ が存在しない場合は操作を終了する。そうでない場合は、条件を満たす $ n $ のうち最小のものを $ i $ とおく。
4. 次の条件を満たす $ n $ を探す。
- $ i + 2 \leq n \leq |S| - 1 $
- $ S $ の $ n $ 文字目は `*` 、 $ S $ の $ n + 1 $ 文字目は `/`
5. 4.の条件を満たす $ n $ が存在しない場合は操作を終了する。そうでない場合は、条件を満たす $ n $ のうち最小のものを $ j $ とおく。
6. $ S $ の $ i $ 文字目から $ j + 1 $ 文字目までを取り除き、残った文字列を順序を保って連結したものを新たな $ S $ とする。その後、 $ x $ の値を $ i $ に更新して 2. に戻る。
操作を終了した時点での $ S $ を出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S $
Output Format
操作を終了した時点での $ S $ を出力せよ。
Explanation/Hint
### Sample Explanation 1
以下の説明では $ S $ の $ n $ 文字目を $ S_n $ と表します。
操作の内容を説明すると次のようになります。
- はじめ、 $ S = $ `a/*b*/c`, $ x = 1 $ である。
- 2.の条件を満たす $ n $ を探す。 $ n = 2 $ は $ x \leq n \leq |S|-1 $ かつ $ S_{n} $ = `/` 、 $ S_{n+1} $ = `*` という条件を満たし、かつ条件を満たす $ n $ の最小値である。よって $ i = 2 $ とおく。
- 4.の条件を満たす $ n $ を探す。 $ n = 5 $ は $ i + 2 \leq n \leq |S| - 1 $ かつ $ S_{n} = $ `*` 、 $ S_{n+1} $ = `/` という条件を満たし、かつ条件を満たす $ n $ の最小値である。よって $ j = 5 $ とおく。
- $ S $ の $ i = 2 $ 文字目から $ j + 1 = 6 $ 文字目までを取り除き、残った文字列を順序を保って連結したものを新たな $ S $ とする。 $ S $ は `ac` になる。その後、 $ x $ の値を $ 2 $ に更新して、手順 2. に戻る。
- 2.の条件を満たす $ n $ を探すと、そのような $ n $ は存在しないことがわかる。よって、操作を終了する。
操作を終了した時点での $ S $ は `ac` です。よってこれを出力します。
### Sample Explanation 2
操作を終了した時点で $ S $ が空文字列になる場合もあります。
### Constraints
- $ 1 \leq N \leq 10^6 $
- $ S $ は英小文字、 `/` および `*` からなる長さ $ N $ の文字列
- $ N $ は整数