結果

問題 No.117 組み合わせの数
ユーザー john_doe_113john_doe_113
提出日時 2015-06-27 04:18:03
言語 Python2
(2.7.18)
結果
WA  
実行時間 -
コード長 627 bytes
コンパイル時間 254 ms
コンパイル使用メモリ 7,040 KB
実行使用メモリ 267,268 KB
最終ジャッジ日時 2024-07-07 19:53:52
合計ジャッジ時間 6,579 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

mo,mx=[1000000007,2000000]

I,F,R=[[0 for i in range(mx+1)]for i in range(3)]
I[1]=F[0]=R[0]=1
for i in range(2,mx+1):
    I[i]=(mo-mo/i*I[mo%i]%mo)%mo
for i in range(1,mx+1):
    F[i]=(F[i-1]*i)%mo;
    R[i]=(R[i-1]*I[i])%mo;

n=input()
s=[raw_input() for i in range(n)]

n1,n2=[0,0]
for i in range(n):
    n1,n2=[int(s[i][2:s[i].index(",")]),int(s[i][s[i].index(",")+1:s[i].index(")")])]
    if s[i][0]=="C":
        print 0 if n1<n2 else (F[n1]*R[n1-n2]%mo)*R[n2]%mo
    elif s[i][0]=="P":
        print 0 if n1<n2 else F[n1]*R[n1-n2]%mo
    elif s[i][0]=="H":
        print 1 if n1==n2 else (F[n1+n2-1]*R[n1-1]%mo)*R[n2]%mo
0