지워진 ETT

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

요약
길이 2n 배열의 0을 1 이상 n 이하의 정수로 채워 어떤 루트 트리의 ETT-배열이 되게 하는 경우의 수를 센다.
난이도

보통10점 중 7점

유형
동적 계획법, 트리, 조합론, 구간
정답자
아직 제출이 없습니다

문제

ETT-배열을 루트가 11인 트리를 다음과 같이 왼쪽 자식 우선으로 깊이 우선 순회하면서 진입 시점, 진출 시점에 맞춰 정점 번호를 순서대로 기록한 배열이라고 하자. 단, 리프 노드의 경우에도 진입 시점과 진출 시점에 모두 기록하므로, 노드가 nn개인 트리에 대응되는 모든 ETT-배열은 길이가 2n2n이다.

그림의 트리를 순회하여 기록한 ETT-배열은 [1, 2, 2, 3, 3, 4, 4, 1]임

위 트리를 순회하여 기록한 ETT-배열은 \[1,3,2,2,3,4,4,1]\[1,3,2,2,3,4,4,1]이다.

00 이상 nn 이하의 정수로 이루어진 길이가 2n2n인 배열이 주어질 때, 배열 속 모든 00을 11 이상 nn 이하의 정수로 바꾸어서 만들 수 있는 모든 ETT-배열의 개수를 구하여라.

입력

첫 번째 줄에 nn이 주어진다. (1≤n≤2001\le n\le 200)

두 번째 줄에 배열을 나타내는 정수 a_1a\_1, a_2a\_2, ⋯\cdots, a_2na\_{2n}이 공백으로 구분되어 주어진다. (0≤a_i≤n0\le a\_i\le n; a_1=a_2n=1a\_1=a\_{2n}=1)

주어지는 배열로 적어도 하나의 ETT-배열을 만들 수 있다.

출력

답을 998,244,353998\\,244\\,353으로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    4
    1 0 2 0 0 4 4 1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5
    1 0 5 0 0 3 0 2 2 1
    
    예상 출력
    4