結果
問題 | No.1785 Inequality Signs |
ユーザー | Kude |
提出日時 | 2021-12-14 00:49:49 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 62 ms / 2,000 ms |
コード長 | 562 bytes |
コンパイル時間 | 243 ms |
コンパイル使用メモリ | 82,324 KB |
実行使用メモリ | 69,632 KB |
最終ジャッジ日時 | 2024-07-23 01:10:25 |
合計ジャッジ時間 | 4,606 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 52 |
ソースコード
mod = 10 ** 9 + 7 n, k = map(int, input().split()) fact = [1] * (n + 1) permk = [1] * (n + 1) pow2 = [1] * (n + 1) for i in range(n): fact[i + 1] = fact[i] * (i + 1) % mod permk[i + 1] = permk[i] * (k - i) % mod pow2[i + 1] = pow2[i] * 2 % mod ifact = [1] * (n + 1) ifact[n] = pow(fact[n], mod - 2, mod) for i in range(n)[::-1]: ifact[i] = ifact[i + 1] * (i + 1) % mod ans = 0 for i in range(n): ans += permk[n - i] * ifact[n - i] % mod * fact[n - 1] % mod * ifact[n - 1 - i] % mod * ifact[i] % mod * pow2[n - 1 - i] ans %= mod print(ans)