만드는 중입니다

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

거대한 곱

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

요약
1부터 10까지 각 정수의 개수가 주어질 때, 골라낸 수들의 곱으로 나올 수 있는 서로 다른 값의 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

보보에게는 정수가 많이 있다. 정확히 말하면 1이 a1a_1개, 2가 a2a_2개, …\dots, 10이 a10a_{10}개 있다.

오늘 보보는 이 수들 중 일부를 골라 곱을 구하려 한다. 아무 수도 고르지 않으면 곱은 1로 정의한다. 보보는 얻을 수 있는 서로 다른 곱의 개수가 궁금하다. 그 개수를 109+710^9 + 7로 나눈 나머지를 구하라.

입력

정수 a1,a2,…,a10a_1, a_2, \dots, a_{10} (0≤ai≤1090 \leq a_i \leq 10^9) 열 개가 한 줄에 주어진다.

출력

서로 다른 곱의 개수를 109+710^9 + 7로 나눈 나머지를 한 개의 정수로 출력한다.

예제2

  1. 예제 1

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

    입력
    0 1000000000 100000000 0 0 0 0 0 0 0
    
    예상 출력
    400000001