No.1778 括弧列クエリ / Bracketed Sequence Query
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 57
作問者 :
null
/ テスター :
CuriousFairy315
タグ : / 解いたユーザー数 57
作問者 :


問題文最終更新日: 2022-04-25 23:42:24
問題文
整合性の取れた括弧列を、ある文字列であって、連続部分文字列 ()
を選び、それを削除することを 回以上繰り返して空文字列が得られるものとします。
また、この操作において一回の操作で消される二文字を、互いと整合をとる文字とします。
括弧列 の 文字目を とし、 と整合を取る文字を とします。 であるとき とします。
例えば、 の場合、これは整合が取れていて、例えば です。
整合性の取れた長さ の括弧列 が与えられます。
番目のクエリでは、 を内部に含む整合をとっている文字のうち、最も内側であるものの index を出力してください。 より形式的には、 となる最大の を求めてください。等号も許容されることに注意してください。 存在しない場合は、 を出力してください。
制約
- (ここで は の長さ)
- は整合性の取れた括弧列
- はすべて整数
入力
出力
番目のクエリに対して、 と を昇順で空白区切りで 行に出力してください。 存在しないケースには を出力してください。 合計 行出力してください。最後に改行してください。
サンプル
サンプル1
入力
10 7 (()(()))() 2 4 2 3 2 5 5 7 1 7 1 8 1 10
出力
1 8 2 3 1 8 4 7 1 8 1 8 -1
番目のクエリについて、答えを赤、 を青で以下に示します。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。