結果
問題 | No.940 ワープ ε=ε=ε=ε=ε=│;p>д<│ |
ユーザー | tpyneriver |
提出日時 | 2019-12-04 21:33:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,964 ms / 5,000 ms |
コード長 | 865 bytes |
コンパイル時間 | 362 ms |
コンパイル使用メモリ | 82,540 KB |
実行使用メモリ | 170,368 KB |
最終ジャッジ日時 | 2024-05-08 08:26:28 |
合計ジャッジ時間 | 24,587 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 168 ms
127,104 KB |
testcase_01 | AC | 167 ms
127,104 KB |
testcase_02 | AC | 163 ms
127,144 KB |
testcase_03 | AC | 217 ms
149,376 KB |
testcase_04 | AC | 167 ms
127,360 KB |
testcase_05 | AC | 212 ms
149,376 KB |
testcase_06 | AC | 209 ms
149,376 KB |
testcase_07 | AC | 208 ms
149,376 KB |
testcase_08 | AC | 200 ms
148,608 KB |
testcase_09 | AC | 211 ms
149,504 KB |
testcase_10 | AC | 210 ms
149,504 KB |
testcase_11 | AC | 195 ms
148,608 KB |
testcase_12 | AC | 213 ms
149,632 KB |
testcase_13 | AC | 211 ms
149,376 KB |
testcase_14 | AC | 167 ms
127,104 KB |
testcase_15 | AC | 369 ms
152,264 KB |
testcase_16 | AC | 787 ms
155,904 KB |
testcase_17 | AC | 1,416 ms
158,336 KB |
testcase_18 | AC | 1,793 ms
160,384 KB |
testcase_19 | AC | 1,404 ms
157,916 KB |
testcase_20 | AC | 2,268 ms
164,096 KB |
testcase_21 | AC | 981 ms
155,264 KB |
testcase_22 | AC | 2,162 ms
165,504 KB |
testcase_23 | AC | 822 ms
160,384 KB |
testcase_24 | AC | 2,232 ms
165,120 KB |
testcase_25 | AC | 2,672 ms
170,112 KB |
testcase_26 | AC | 2,964 ms
170,368 KB |
ソースコード
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(2341398) def comb(a, b): if not a >= b >= 0: return 0 return frac[a]*fraci[b]*fraci[a-b]%mod X, Y, Z = map(int, readline().split()) M = X+Y+Z+1 C = [0] + [(-1)**(M-k+1)*pow(2, k-1, mod)*comb(M, k)%mod for k in range(1, M+1)] if M & 1: C[0] = 1 for i in range(1, M+1): C[i] = (C[i] + C[i-1]) % mod ans = 0 for j in range(1, M): ans = (ans + C[j]*pow(pow(2, j, mod), mod-2, mod)*comb(X+j-1, X)*comb(Y+j-1, Y)*comb(Z+j-1, Z)) % mod if M == 1: ans = 1 print(ans%mod)