만드는 중입니다

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

복권

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

요약
각 구간이 A/B 확률로 제거되는 경사로 기계에서 공이 떨어지는 바구니 상금의 기댓값을 10^9+7 나머지로 구합니다.
난이도

보통10점 중 6점

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

문제

잭은 복권을 하면서 많은 시간과 돈을 쓴다. 복권 기계는 NN개의 평행한 경사로로 이루어져 있다(그림 참고). 각 경사로는 길이가 같은 MM개의 구간으로 나뉜다. 경사로 아래에는 정수가 적힌 바구니 MM개가 놓여 있다. 추첨은 다음과 같이 진행된다. 먼저 N⋅MN \cdot M개의 구간 중 일부를 제거한다. 각 구간마다 BB면 주사위(면에 1,…,B1, \ldots, B가 적혀 있다)를 굴려서 결과가 AA 이하이면 그 구간을 제거한다. 그다음 기계의 가장 위 경사로 왼쪽 위 모서리에서 공을 놓는다. 공이 바구니에 들어가면 플레이어의 상금은 그 바구니에 적힌 금액이다. 당신은 잭에게 이런 게임에서는 대체로 돈을 잃는다는 점을 설명하려 한다. 이를 증명하기 위해 이 게임 상금의 기댓값 평균을 계산하려 한다. 기댓값은 pq\frac{p}{q}로 나타낼 수 있다는 것이 알려져 있다. 여기서 pp와 qq는 정수이고, pq\frac{p}{q}는 기약분수이다. qr mod (109+7)=1qr \bmod (10^9 + 7) = 1을 만족하는 정수 rr을 이용하여 pr mod (109+7)pr \bmod (10^9 + 7)의 값을 구하라.

입력

첫째 줄에 기계의 크기를 나타내는 공백으로 구분된 정수 NN과 MM(2≤N,M≤5⋅1052 \le N, M \le 5 \cdot 10^5)이 주어진다. 둘째 줄에 주사위 굴림의 매개변수인 공백으로 구분된 정수 AA와 BB(0≤A≤B<109+70 \le A \le B < 10^9 + 7, B≠0B \ne 0)가 주어진다. 셋째 줄에 왼쪽부터 순서대로 바구니의 값인 공백으로 구분된 정수 MM개 C1,C2,…,CMC_1, C_2, \ldots, C_M(0≤Ci≤1090 \le C_i \le 10^9)이 주어진다.

출력

잭이 받을 상금의 기댓값을 나타내는 정수 하나를 출력한다. 형식은 위 설명을 따른다.

힌트

이 문제의 출력 형식에 맞추려면 qr≡1(modK)qr \equiv 1 \pmod{K}(K=109+7K = 10^9 + 7)를 만족하는 rr을 구해야 한다. 이 수를 KK를 법으로 한 qq의 역원이라고 부른다. q≢0(modK)q \not\equiv 0 \pmod{K}이고 KK가 소수이면 r=qK−2 mod Kr = q^{K - 2} \bmod K로 계산할 수 있다는 것이 알려져 있다.

예제5

  1. 예제 1

    입력
    2 2
    1 2
    10 100
    
    예상 출력
    500000031
    
  2. 예제 2

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

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

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

    입력
    8 6
    17536540 365964399
    49 8 28 51 32 24
    
    예상 출력
    214402328