Submission #7125056


Source Code Expand

Copy
import sys
input = sys.stdin.readline
import numpy as np
N,M,L,R = map(int,input().split())
MOD = 10 ** 9 + 7
X=1000
fact = np.arange(X*X,dtype=np.int64).reshape(X,X)
fact[0,0] = 1
for n in range(1,X):
fact[:,n] *= fact[:,n-1]
fact[:,n] %= MOD
for n in range(1,X):
fact[n] *= fact[n-1,-1]
fact[n] %= MOD
fact = fact.ravel()
fact_inv = np.arange(1,X*X+1,dtype=np.int64)[::-1].reshape(X,X)
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
import sys
input = sys.stdin.readline

import numpy as np

N,M,L,R = map(int,input().split())

MOD = 10 ** 9 + 7

X=1000
fact = np.arange(X*X,dtype=np.int64).reshape(X,X)
fact[0,0] = 1
for n in range(1,X):
    fact[:,n] *= fact[:,n-1]
    fact[:,n] %= MOD
for n in range(1,X):
    fact[n] *= fact[n-1,-1]
    fact[n] %= MOD
fact = fact.ravel()

fact_inv = np.arange(1,X*X+1,dtype=np.int64)[::-1].reshape(X,X)
fact_inv[0,0] = pow(int(fact[-1]),MOD-2,MOD)
for n in range(1,X):
    fact_inv[:,n] *= fact_inv[:,n-1]
    fact_inv[:,n] %= MOD
for n in range(1,X):
    fact_inv[n] *= fact_inv[n-1,-1]
    fact_inv[n] %= MOD
fact_inv = fact_inv.ravel()[::-1]

U = N - M
comb = fact[U] * fact_inv[:U+1] % MOD * fact_inv[U::-1] % MOD
comb[1::2] *= (-1)

P = np.zeros(R+1,dtype=np.int64)
for i,x in enumerate(comb,M):
    P[::i] += x

P[:M-1:-1] -= P[-M-1::-1]
P %= MOD

# (1-x)^{N+1}で割る
Q = fact[N:N+R+1] * fact_inv[:R+1] % MOD * fact_inv[N] % MOD

def f(R):
    total = fact[R+N] * fact_inv[R] % MOD * fact_inv[N] % MOD
    x = (Q[R::-1] * P[:R+1] % MOD).sum() % MOD
    coef = fact[N] * fact_inv[M] % MOD * fact_inv[N-M] % MOD
    return (total - x*coef)%MOD

answer = (f(R) - f(L-1))%MOD
print(answer)

Submission Info

Submission Time
Task F - Candy Retribution
User maspy
Language Python (3.4.3)
Score 1000
Code Size 1253 Byte
Status AC
Exec Time 1576 ms
Memory 42204 KB

Judge Result

Set Name Sample Subtask1
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 3
AC × 40
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_34.txt, sub1_35.txt, sub1_36.txt, sub1_37.txt
Case Name Status Exec Time Memory
sample_01.txt AC 244 ms 35812 KB
sample_02.txt AC 248 ms 35812 KB
sample_03.txt AC 844 ms 37596 KB
sub1_01.txt AC 1124 ms 35932 KB
sub1_02.txt AC 457 ms 35812 KB
sub1_03.txt AC 893 ms 35812 KB
sub1_04.txt AC 311 ms 35812 KB
sub1_05.txt AC 868 ms 35812 KB
sub1_06.txt AC 1047 ms 37468 KB
sub1_07.txt AC 1048 ms 35812 KB
sub1_08.txt AC 1203 ms 37468 KB
sub1_09.txt AC 1134 ms 37468 KB
sub1_10.txt AC 1496 ms 39516 KB
sub1_11.txt AC 1574 ms 42204 KB
sub1_12.txt AC 1160 ms 40540 KB
sub1_13.txt AC 272 ms 37384 KB
sub1_14.txt AC 271 ms 37468 KB
sub1_15.txt AC 1554 ms 42076 KB
sub1_16.txt AC 1576 ms 42080 KB
sub1_17.txt AC 1503 ms 37340 KB
sub1_18.txt AC 269 ms 37468 KB
sub1_19.txt AC 258 ms 35812 KB
sub1_20.txt AC 247 ms 35812 KB
sub1_21.txt AC 243 ms 35812 KB
sub1_22.txt AC 246 ms 35812 KB
sub1_23.txt AC 245 ms 35812 KB
sub1_24.txt AC 247 ms 35812 KB
sub1_25.txt AC 241 ms 35812 KB
sub1_26.txt AC 1549 ms 39772 KB
sub1_27.txt AC 271 ms 37468 KB
sub1_28.txt AC 1526 ms 42076 KB
sub1_29.txt AC 1502 ms 35812 KB
sub1_30.txt AC 1568 ms 35812 KB
sub1_31.txt AC 270 ms 37468 KB
sub1_32.txt AC 267 ms 37468 KB
sub1_33.txt AC 267 ms 37468 KB
sub1_34.txt AC 270 ms 37468 KB
sub1_35.txt AC 261 ms 37468 KB
sub1_36.txt AC 274 ms 35812 KB
sub1_37.txt AC 1511 ms 42076 KB


2025-04-01 (Tue)
04:43:51 +00:00