지우기 게임

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

홍준이와 명우는 수열로 하는 게임을 즐긴다. 먼저 홍준이가 자연수 NN개로 이루어진 수열 AA를 마음대로 만들고, 명우도 같은 방식으로 길이가 NN인 수열 SS를 만든다.

게임은 NN번의 라운드로 진행된다. ii번째 라운드에서 홍준이는 SiS_i보다 크지 않은 수 하나를 자기 수열 AA에서 지워야 한다. 지울 수 있는 수가 하나도 없으면 홍준이가 지고, NN번의 라운드를 모두 마치면 홍준이가 이긴다.

명우의 수열 SS가 주어질 때, 홍준이가 최적의 전략으로 진행해서 이길 수 있는 수열 AA가 몇 개인지 구하자. 원소가 같아도 순서가 다르면 서로 다른 수열로 센다.

입력

첫째 줄에 수열의 길이 NN이 주어진다. (1N2001 \le N \le 200)

이어지는 NN개의 줄 가운데 ii번째 줄에 SiS_i가 주어진다. (1Si1091 \le S_i \le 10^9)

출력

홍준이가 이길 수 있는 수열 AA의 개수를 1,000,000,007로 나눈 나머지를 출력한다.

힌트

N=2N = 2이고 S=(1,2)S = (1, 2)이면 홍준이가 이길 수 있는 수열 AA(1,1)(1, 1), (1,2)(1, 2), (2,1)(2, 1) 세 가지다.