結果
問題 |
No.916 Encounter On A Tree
|
ユーザー |
![]() |
提出日時 | 2020-02-19 19:47:05 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 777 bytes |
コンパイル時間 | 353 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 51,968 KB |
最終ジャッジ日時 | 2024-10-08 15:49:14 |
合計ジャッジ時間 | 14,726 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 46 WA * 10 |
ソースコード
d,l,r,k = map(int, input().split()) mod = 10**9+7 P = [0]*(2**d+1) P[0] = 1 for i in range(1, 2**d+1): P[i] = (P[i-1]*i)%mod j = 1 while j <= d: if 2**(j-1) <= l < 2**j: jl = j if 2**(j-1) <= r < 2**j: jr = j j += 1 if (jr-jl)%2 == k%2 and jr-jl <= k <= jr-jl+2*(jl-1): t = k-(jr-jl) ans = 1 for i in range(1, d+1): if i == jr and jl != jr: if t < 4: ans *= 2**(jr-jl)*P[2**(i-1)-1] else: ans *= 2**(jr-jl+t//2)*P[2**(i-1)-1] ans %= mod continue elif i == jr: ans *= 2**(i-1)*2**(t//2-1)*P[2**(i-1)-2] ans %= mod continue ans *= P[2**(i-1)] ans %= mod else: ans = 0 print(ans)