結果
問題 |
No.916 Encounter On A Tree
|
ユーザー |
![]() |
提出日時 | 2025-03-06 10:24:38 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 672 bytes |
コンパイル時間 | 446 ms |
コンパイル使用メモリ | 82,660 KB |
実行使用メモリ | 122,840 KB |
最終ジャッジ日時 | 2025-03-06 10:24:45 |
合計ジャッジ時間 | 6,722 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 50 WA * 6 |
ソースコード
d,l,r,k=map(int,input().split()) M=10**9+7 N=1<<d fa=[1] for i in range(1,N+1): fa+=[fa[-1]*i%M] dl=len(bin(l))-3 dr=len(bin(r))-3 a=1 for i in range(d): a*=fa[1<<i] a%=M if k-(dr-dl)>=0 and (k-(dr-dl))%2==0 and dl-(k-(dr-dl))//2>=0: dm=dl-(k-(dr-dl))//2 if dm==dl: a*=pow(fa[1<<dr],M-2,M) a*=1<<dl a*=1<<(dr-dl) a*=fa[(1<<dl)-1]*fa[(1<<dr)-1] elif dl==dr: a*=pow(fa[1<<dl],M-2,M) a*=1<<dm a*=2 a*=1<<(dl-dm-1) a*=1<<(dl-dm-1) a*=fa[(1<<dl)-2] else: a*=pow(fa[1<<dl],M-2,M)*pow(fa[1<<dr],M-2,M) a*=1<<dm a*=2 a*=1<<(dl-dm-1) a*=1<<(dr-dm-1) a*=fa[(1<<dl)-1]*fa[(1<<dr)-1] else: a=0 print(a%M)