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

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

공 색칠하기

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

요약
상자에서 모든 공을 꺼내는 순서 중에서 색 1의 마지막 공이 색 2의 마지막 공보다 먼저 나오는 조건을 만족하는 순서의 수를 센다.
난이도

보통10점 중 7점

유형
동적 계획법, 조합론, 수학
정답자
아직 제출이 없습니다

문제

Alice는 색이 kk종류인 공 nn개를 가지고 있다. 색에는 1번부터 kk번까지 번호가 붙어 있고, 색이 같은 공끼리는 구별할 수 없다. 공은 모두 상자 하나에 담겨 있다.

Alice는 상자가 빌 때까지 공을 하나씩 꺼냈다. 꺼낸 순서를 살펴보니 다음 성질이 성립했다.

  • 1 이상 kk 미만의 모든 자연수 ii에 대해, 색이 ii인 마지막 공이 색이 i+1i+1인 마지막 공보다 먼저 나왔다.

예를 들어 [1,2,1,1,2,3][1, 2, 1, 1, 2, 3]은 조건을 만족한다. 반면 [1,1,2,1,3,3][1, 1, 2, 1, 3, 3]은 색이 1인 마지막 공이 네 번째, 색이 2인 마지막 공이 세 번째에 나왔으므로 조건을 만족하지 않는다.

처음에 상자에 들어 있던 색깔별 공의 개수가 주어진다. 위 성질을 만족하는 꺼내는 순서가 몇 가지인지 세어라.

입력

첫째 줄에 공의 색깔 종류 수 kk가 주어진다. (1≤k≤10001 \le k \le 1000)

다음 kk개 줄에는 색이 ii인 공의 개수 cic_i가 한 줄에 하나씩 주어진다. (1≤ci≤10001 \le c_i \le 1000)

모든 cic_i의 합 nn은 1000을 넘지 않는다.

출력

위 성질을 만족하도록 공을 꺼내는 순서의 가짓수를 10000000071000000007(109+710^9 + 7)로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    3
    2
    2
    1
    
    예상 출력
    3
    
  2. 예제 2

    입력
    4
    1
    2
    3
    4
    
    예상 출력
    1680