結果
問題 | No.117 組み合わせの数 |
ユーザー | fine |
提出日時 | 2016-07-27 13:10:47 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 1,768 ms / 5,000 ms |
コード長 | 575 bytes |
コンパイル時間 | 142 ms |
コンパイル使用メモリ | 7,076 KB |
実行使用メモリ | 101,632 KB |
最終ジャッジ日時 | 2024-11-06 17:56:49 |
合計ジャッジ時間 | 4,255 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ソースコード
MOD = 1000000007 MAX_N = 1000000 MAX_K = 1000000 a = [1] * (MAX_N + MAX_K + 1) b = [1] * (MAX_K + 1) for i in xrange(1,MAX_N + MAX_K + 1): a[i] = (i * a[i - 1]) % MOD b[MAX_K] = pow(a[MAX_K], MOD - 2, MOD) for i in reversed(xrange(1, MAX_K + 1)): b[i - 1] = b[i] * i % MOD def P(x,y): if x < y: return 0 else: return a[x] * b[x - y] % MOD def C(x,y): return P(x,y) * b[y] % MOD def H(x,y): if x == 0 and y == 0: return 1 else: return C(x + y - 1,y) t = input() for i in xrange(t): print eval(raw_input())