아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

알록달록한 괄호열

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

요약
색이 칠해진 괄호 문자열에서 뽑을 수 있는 서로 다른 colorful 괄호 문자열의 개수를 구합니다. 인접한 괄호와 짝을 이루는 괄호는 색이 달라야 합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 문자열
정답자
아직 제출이 없습니다

문제

괄호열은 (와 ) 두 종류의 문자로 이루어진 문자열이다.

좋은 괄호열은 다음 규칙으로 만들 수 있는 괄호열이다.

  • 빈 문자열은 좋은 괄호열이다.
  • SS가 좋은 괄호열이면 (S)도 좋은 괄호열이다. 이때 SS의 양 끝에 붙인 두 괄호는 짝지어졌다고 한다.
  • SS와 TT가 좋은 괄호열이면 STST도 좋은 괄호열이다.

색칠된 괄호열은 각 괄호가 특정한 색으로 칠해진 괄호열이다.

알록달록한 괄호열은 다음 조건을 모두 만족하는 색칠된 괄호열이다.

  • 색을 무시하고 괄호의 모양만 봤을 때 좋은 괄호열이다.
  • 인접한 두 괄호의 색은 모두 다르다.
  • 짝지어진 두 괄호의 색은 모두 다르다.

문자열 SS에서 하나 이상의 문자를 골라 순서대로 나열했을 때 TT가 되면, SS에서 TT를 뽑아낼 수 있다고 한다.

색칠된 괄호열이 주어질 때, 이 괄호열에서 뽑아낼 수 있는 알록달록한 괄호열은 몇 가지인지 구하라.

괄호의 모양이 같아도 색이 다른 괄호가 하나라도 있으면 다른 경우로 센다. 문자를 고르는 방식이 여럿이어도 결과가 같으면 한 가지 경우로 센다.

제한

PP의 길이를 NN이라 하면 1≤N≤7001 \le N \le 700이다.

1≤∣P[i]∣≤N1 \le |P[i]| \le N (모든 0≤i≤N−10 \le i \le N - 1)

예제1

  1. 예제 1

    입력
    1
    (
    
    예상 출력
    0