結果
問題 | No.1044 正直者大学 |
ユーザー |
![]() |
提出日時 | 2020-05-01 22:46:01 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 107 ms / 2,000 ms |
コード長 | 471 bytes |
コンパイル時間 | 218 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 79,360 KB |
最終ジャッジ日時 | 2024-12-25 13:39:48 |
合計ジャッジ時間 | 3,174 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 |
ソースコード
n,m,k=map(int,input().split()) mod=10**9+7 if m>n: n,m=m,n N=n fac=[1]*(N+3) inv=[1]*(N+3) t=1 for i in range(1,N+3): t*=i t%=mod fac[i]=t t=pow(fac[N+2],mod-2,mod) for i in range(N+2,0,-1): inv[i]=t t*=i t%=mod def comb(n,r): if r>n or r<0: return 0 return fac[n]*inv[n-r]*inv[r]%mod ans=0 for i in range(1,m+1): if n+m-i*2<k: break ans+=fac[n-1]*comb(n,i)%mod*fac[m]*comb(m-1,i-1)%mod ans%=mod print(ans)