만드는 중입니다

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

돌무더기의 정상화

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

요약
적게 가진 쪽이 다음 더미를 가져가는 규칙에서 두 사람의 돌 개수가 같아지는 순열 T의 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

희원이와 채완이는 바닥에 놓인 돌무더기 NN개를 보고 재미있는 놀이를 생각해 냈다. ii번 돌무더기에는 돌이 AiA_i개 쌓여 있다.

먼저 1부터 NN까지의 수가 한 번씩 등장하는 길이 NN의 순열 TT를 만든다. 그 후 총 NN턴 동안, 첫 번째 턴부터 NN번째 턴까지 ii번째 턴에 다음 규칙에 따라 놀이를 진행한다.

  • 희원이가 지금까지 가져간 돌의 개수가 채완이보다 적으면 희원이가 TiT_i번 돌무더기에 있는 모든 돌을 가져간다.
  • 그렇지 않으면 채완이가 TiT_i번 돌무더기에 있는 모든 돌을 가져간다.

게임이 끝난 후, 두 사람이 가져간 돌의 개수가 같아지도록 하는 순열 TT의 개수를 구하여라.

입력

첫째 줄에 돌무더기의 개수 NN이 주어진다. (1≤N≤100)(1 \leq N \leq 100)

둘째 줄에 ii번 돌무더기에 쌓인 돌의 개수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다. (1≤Ai≤20)(1 \leq A_i \leq 20)

출력

두 사람이 가져간 돌의 개수를 같게 만드는 순열 TT의 개수를 1 000 000 0071\,000\,000\,007로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

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

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