괄호 붙이기

시간 제한1초메모리 제한1024 MB

요약
괄호 문자열 A와 B가 주어질 때, A를 비지 않은 접두사와 접미사로 나누어 접두사+B+접미사가 올바른 괄호 문자열이 되게 만들 수 있는지 판정한다.
난이도

보통10점 중 5점

유형
누적 합, 문자열, 수학
정답자
아직 제출이 없습니다

문제

올바른 괄호 문자열은 다음과 같이 정의한다.

  1. 빈 문자열은 올바른 괄호 문자열이다.
  2. S가 올바른 괄호 문자열일 때, (S)도 올바른 괄호 문자열이다.
  3. S와 T가 올바른 괄호 문자열이라면, ST도 올바른 괄호 문자열이다.

예를 들어, ()(), (()), (((()))(())) 등은 올바른 괄호 문자열이고, (((), )(, )))()()(( 등은 그렇지 않다.

(, )로 이루어진 문자열 AA, BB가 주어진다.

AA를 길이 11 이상의 연속된 두 문자열 A_1A\_1, A_2A\_2로 순서를 유지해서 나눈 후 A_1A\_1, BB, A_2A\_2를 이어붙여 새롭게 A_1+B+A_2A\_1+B+A\_2라는 문자열을 만들었을 때,

올바른 괄호 문자열이 되도록 A_1A\_1, A_2A\_2를 나눌 수 있다면 11, 아니면 00을 출력한다.

입력

첫 번째 줄과 두 번째 줄에 괄호로 이루어진 문자열 AA, BB가 주어진다. (2≤∣A∣≤200,000;(2 \le |A| \le 200\\,000; 1≤∣B∣≤200,000)1 \le |B| \le 200\\,000)

출력

A_1+B+A_2A\_1+B+A\_2가 올바른 괄호 문자열이 되도록 AA를 나누는 방법이 존재하면 11, 아니면 00을 출력한다.

예제2

  1. 예제 1

    입력
    ((
    ))
    
    예상 출력
    0
    
  2. 예제 2

    입력
    (()
    )
    
    예상 출력
    1