競プロ典型002

なんちゃらかんちゃら

 

"("か")"のいずれかをN個並べる

すべて( )がこのようにペアを組めればOK、辞書順に全列挙

) (とかあっちゃうとNG

 

括弧をそれぞれ1,-1に変換して全通り並べる。

左から一桁ずつ和を取っていき、

・途中で和が負になる

・最終的な和が0でない

のいずれかを満たすとNG

Nが小さいのでこれでOK

 

C++の細かい書き方

ビット列iのj桁目が0か判定する方法

1をj桁目まで左シフト(100とかに)

iのj桁目と論理積をとって、出力が0なら0、1なら1になる。