ARC141 C Bracket and Permutation
①順列Pにおいてj<iかつPj>Piなるjが存在するようなは')'で確定です。
②同じく、順列Qにおいてj<iかつPj<Piなるjが存在するようなは')'で確定です。
このようにして確定させた'('の個数はちょうどnでなければならないです。
'('を1、')'を-1に対応させたとき、一般に「正しい括弧列⇔累積和が常に0以上」が成り立ちます。
もしSiが')'にも関わらず①を満たさないとき、[P1,Pi]は[1,i]の並び替えになっています。が成り立つのでです。
②も満たさないとすると同様にです。この二つを足すととなりますが左辺は-1なので矛盾します。
よってSi=')'のとき上記上記の方法で必ず')'だと確定されます。
このように確定された')'以外を'('とすることでSは一つに定まります。
このようにして求めたSから貪欲に辞書順最小のもと最大のものを作り、P,Qに一致するか確認すれば終わりです。