結果
問題 |
No.916 Encounter On A Tree
|
ユーザー |
![]() |
提出日時 | 2025-03-06 10:22:54 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 667 bytes |
コンパイル時間 | 470 ms |
コンパイル使用メモリ | 82,280 KB |
実行使用メモリ | 122,996 KB |
最終ジャッジ日時 | 2025-03-06 10:23:01 |
合計ジャッジ時間 | 6,894 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 34 WA * 18 RE * 4 |
ソースコード
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: 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: print(dm,dl,dr) 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)