結果
問題 | No.117 組み合わせの数 |
ユーザー | john_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 |
(要ログイン)
ソースコード
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