086 - Parentheses Check Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 1000

問題文

長さ N(,) からなるカッコ列 S が与えられるので、S が正しいカッコ列であるかどうかを判定してください。

ただし、正しいカッコ列とは次のうちいずれかの条件を満たすものを指します。

  • 空文字列
  • 空文字列でない正しいカッコ列 A,B が存在し、A, B をこの順に連結した文字列
  • ある正しいカッコ列 A が存在し、(,A,) をこの順に連結した文字列

たとえば、(()())() は正しいカッコ列ですが、))()(( は正しいカッコ列ではありません。

制約

  • N1 以上 500000 以下の整数
  • S() からなる N 文字の文字列

入力

入力は以下の形式で標準入力から与えられます。

N
S

出力

S が正しいカッコ列ならば Yes 、そうでないならば No を出力してください。


入力例 1

8
(()())()

出力例 1

Yes

入力例 2

6
))()((

出力例 2

No