結果
問題 | No.1044 正直者大学 |
ユーザー |
![]() |
提出日時 | 2020-05-02 19:10:04 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 167 ms / 2,000 ms |
コード長 | 668 bytes |
コンパイル時間 | 439 ms |
コンパイル使用メモリ | 82,648 KB |
実行使用メモリ | 119,276 KB |
最終ジャッジ日時 | 2024-12-31 06:32:57 |
合計ジャッジ時間 | 5,769 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 |
ソースコード
import sys readline = sys.stdin.readline MOD = 10**9+7 def frac(limit): frac = [1]*limit for i in range(2,limit): frac[i] = i * frac[i-1]%MOD fraci = [None]*limit fraci[-1] = pow(frac[-1], MOD -2, MOD) for i in range(-2, -limit-1, -1): fraci[i] = fraci[i+1] * (limit + i + 1) % MOD return frac, fraci frac, fraci = frac(1341398) def comb(a, b): if not a >= b >= 0: return 0 return frac[a]*fraci[b]*fraci[a-b]%MOD N, M, K = map(int, readline().split()) ans = 0 for a in range(1+min(N, M)): if N+M-2*a<K: continue ans = (ans + comb(N, a)*comb(M-1, a-1))%MOD print(ans*frac[N-1]*frac[M]%MOD)