結果
問題 |
No.1044 正直者大学
|
ユーザー |
![]() |
提出日時 | 2020-05-12 18:56:06 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 895 ms / 2,000 ms |
コード長 | 577 bytes |
コンパイル時間 | 319 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 28,784 KB |
最終ジャッジ日時 | 2024-09-13 20:25:04 |
合計ジャッジ時間 | 11,987 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 |
ソースコード
n,m,k=map(int,input().split()) mod=10**9+7 ans=0 U=2*10**5 fact=[1]*(U+1) fact_inv=[1]*(U+1) for i in range(1,U+1): fact[i]=(fact[i-1]*i)%mod fact_inv[U]=pow(fact[U],mod-2,mod) for i in range(U,0,-1): fact_inv[i-1]=(fact_inv[i]*i)%mod def comb(n,k): if k<0 or k>n: return 0 x=fact[n] x*=fact_inv[k] x%=mod x*=fact_inv[n-k] x%=mod return x for i in range(1,m+1): if n<i: break if n+m-2*i<k: continue ans=(ans+comb(n,i)*comb(m-1,i-1))%mod import math print((ans*math.factorial(n-1)*math.factorial(m))%mod)