만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

순열 패턴

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

요약
길이 n(50 이하)인 순열에서 231 패턴을 포함하지 않는 공백이 아닌 부분수열의 개수를 구합니다.
난이도

어려움10점 중 8점

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

문제

서로 다른 mm개의 수로 이루어진 수열 a1,…,ama_1, \dots, a_m에서 1≤i<j<k≤m1 \leq i < j < k \leq m이고 ak<ai<aja_k < a_i < a_j를 만족하는 (i,j,k)(i, j, k)가 없으면, 이 수열을 "231이 없는 수열"이라고 한다. Bobo는 1,…,n1, \dots, n의 순열 p1,…,pnp_1, \dots, p_n을 가지고 있으며, 원소를 일부 제거할 수 있다(아무것도 제거하지 않아도 되지만 전부 제거할 수는 없다). 제거 후 남은 (2n−1)(2^n - 1)개의 순열 중에서 231이 없는 수열의 개수를 구하라.

입력

테스트 케이스가 여러 개 주어지며, 입력은 파일의 끝에서 끝난다. 각 테스트 케이스는 두 줄로 주어진다. 첫 줄에는 정수 nn이 주어진다. 둘째 줄에는 정수 p1,…,pnp_1, \dots, p_n이 주어진다.

출력

각 테스트 케이스마다 231이 없는 수열의 개수를 나타내는 정수를 한 줄에 출력한다.

제한

1≤n≤501 \leq n \leq 50이며, 각 1≤i≤n1 \leq i \leq n에 대해 1≤pi≤n1 \leq p_i \leq n이다. 한 입력 파일에 포함된 nn의 합은 500을 넘지 않는다.

예제1

  1. 예제 1

    입력
    2
    2 1
    3
    1 2 3
    4
    2 3 4 1
    
    예상 출력
    3
    7
    11