Logo
(追記) (追記ここまで)

34833번 - Bracket Sequence Endgame

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB42313075.000%

문제

각 문자가(, )로만 이루어진 문자열을 괄호 문자열이라고 한다. 이때, 올바른 괄호 문자열의 정의는 다음과 같다.

  • ()은 올바른 괄호 문자열이다.
  • $A$가 올바른 괄호 문자열일 때, ($A$)는 올바른 괄호 문자열이다.
  • $A,ドル $B$가 각각 올바른 괄호 문자열일 때, $AB$는 올바른 괄호 문자열이다.

예를 들어 ()()(())는 올바른 괄호 문자열이고, )((()는 올바른 괄호 문자열이 아니다.

괄호 문자열 $S$가 주어진다. 당신은 이 괄호 문자열에 다음 연산을 원하는 만큼 시행할 수 있다.

  1. 현재 문자열을 $T$라고 하자. 당신은 올바른 괄호 문자열인 $T[l,r]$을 선택한다. 이는 $T$의 $l$번째부터 $r$번째의 문자들로 이루어진 부분 문자열을 의미한다. (1ドル \leq l \leq r \leq N$)
  2. $l \leq i \leq r$인 모든 $i$에 대해 $T_i =$(이라면 )로 바꾸고, $T_i =$)이라면 (로 바꾼다.

당신은 시작 괄호 문자열 $S$로부터 연산을 원하는 만큼 진행하여 만들 수 있는 서로 다른 괄호 문자열의 개수가 궁금해졌다. 두 괄호 문자열이 다른 과정을 통해 같은 괄호 문자열이 되었을 때도 하나의 괄호 문자열로 인정됨에 주의하라.

입력

첫째 줄에 괄호 문자열의 길이 $N$이 주어진다. (1ドル \leq N \leq 5,000円$)

둘째 줄에 괄호 문자열 $S$가 주어진다.

출력

연산을 시행하여 만들 수 있는 서로 다른 괄호 문자열의 개수를 998ドル,244円,353円$으로 나눈 나머지를 출력하라.

제한

예제 입력 1

3
(()

예제 출력 1

3

((), ()(, )((로 3개가 가능하다.

예제 입력 2

2
()

예제 출력 2

2

예제 입력 3

12
)(()()()))()

예제 출력 3

317

노트

출처

University > 연세대학교 > 2025 연세대학교 프로그래밍 경진대회 J번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /