AT_wtf19_e e
Description
[problemUrl]: https://atcoder.jp/contests/wtf19/tasks/wtf19_e
非常に細長いベンチがあります。 このベンチは $ M $ 個の区画に分かれています。ここで、$ M $ は非常に大きい整数です。
はじめ、ベンチには誰も座っていません。 このベンチに $ M $ 人の人たちが一人ずつ訪れ、以下の行動を行います。
- まだ人が座っておらず、人が座っている区画と隣接もしていないような区画を *快適* であると呼ぶことにする。 快適な区画が存在しなければ、ベンチから立ち去る。 そうでなければ、快適な区画の一つを一様ランダムに選んでそこに座る (人々の座る区画の選択は互いに独立である)。
$ M $ 人全員が上記の行動を取ったあと、すぬけ君は $ N $ 個の連続する区画からなる区間を ($ M-N+1 $ 個の候補から) 一様ランダムに選び、その区間の写真を撮ります。 この写真は、`X` と `-` からなる長さ $ N $ の次のような文字列により表現できます: $ i $ 文字目は、区間の左から $ i $ 番目の区画に人が座っていれば `X`、そうでなければ `-` であるような文字列。 なお、写真の左右は区別されます。 例えば、`-X--X` と `X--X-` は異なる写真です。
撮った写真が与えられる文字列 $ s $ に一致する確率はいくつでしょうか? この確率は $ M $ に依存しますが、$ M $ が限りなく大きくなるときのこの確率の極限を求めてください。
ここで、この極限は $ 3 $ つの**有理**数 $ p,\ q,\ r $ と $ e\ =\ 2.718\ \ldots $ (自然対数の底) を用いて以下の形式で一意に表せることが証明できます。
$ p\ +\ \frac{q}{e}\ +\ \frac{r}{e^2} $
これら $ 3 $ つの有理数を求め、それらを注記で述べるように mod $ 10^9\ +\ 7 $ で出力してください。
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 注記
有理数を出力する際は、まずその有理数を分数 $ \frac{y}{x} $ として表してください。ここで、$ x,\ y $ は整数であり、$ x $ は $ 10^9\ +\ 7 $ で割り切れてはなりません (この問題の制約下で、そのような表現は必ず可能です)。そして、$ xz\ \equiv\ y\ \pmod{10^9\ +\ 7} $ を満たすような $ 0 $ 以上 $ 10^9\ +\ 6 $ 以下の唯一の整数 $ z $ を出力してください。
### 制約
- $ 1\ \leq\ N\ \leq\ 1000 $
- $ |s|\ =\ N $
- $ s $ は `X` と `-` からなる。
### Sample Explanation 1
ランダムに選ばれた区画に人が座っている確率は $ \frac{1}{2}\ -\ \frac{1}{2e^2} $ に収束します。
### Sample Explanation 2
人々の行動のあと、人が座っていない区画が $ 3 $ つ連続して残ることはありません。
### Sample Explanation 3
極限は $ \frac{1}{e^2} $ です。
### Sample Explanation 4
極限は $ \frac{1}{2}\ -\ \frac{13}{6e^2} $ です。
### Sample Explanation 5
極限は $ \frac{7}{675e^2} $ です。