AT_ttpc2019_j 動的無計画法

题目描述

考虑以下数列 $ a\ =\ (a_0,\ a_1,\ \ldots\ ,\ a_N) $。 $ \begin{aligned}\ a_i\ =\ \begin{cases}\ x\ &\ (\ i\ =\ 0\ )\ \\ y\ &\ (\ i\ =\ 1\ )\ \\ a_{i-1}\ +\ a_{i-2}\ &\ (\ \text{otherwise}\ )\ \end{cases}\ \end{aligned} $ Alice决定使用动态规划来求解 $ a_N $。具体做法如下: 1. 准备数组 $ a $ 2. 初始化 $ a_{0}\ =\ x,\ a_{1}\ =\ y,\ a_{i}\ =\ 0\ (i\ >\ 1) $ 3. 对于 $ i\ =\ 2,\ 3,\ \ldots\ ,\ N $,将 $ a_{i} $ 替换为 $ a_{i-1}+a_{i-2} $ 按照上述步骤中的第3步,逐渐以较小的 $ i $ 进行更新,就能得到正确的 $ a_{N} $ 值。然而,Alice没有计划,随意更新了 $ i $ 的顺序。此时,更新的顺序有 $ (N-1)! $ 种可能,要求出每种顺序下最终写入 $ a_{N} $ 的值,并计算它们的总和除以 $ 10^9+7 $ 的余数。

输入格式

输入以以下格式从标准输入中给出。 > $ x $ $ y $ $ N $

输出格式

输出在所有更新顺序下最终 $ a_{N} $ 的值的总和除以 $ 10^9+7 $ 的余数。 ## 样例#1 ### 样例输入 #1 ``` 0 1 3 ``` ### 样例输出 #1 ``` 3 ``` ## 样例 #2 ### 样例输入 #2 ``` 0 0 5 ``` ### 样例输出 #2 ``` 0 ``` ## 样例 #3 ### 样例输入 #3 ``` 1 1 6 ``` ### 样例输出 #3 ``` 117 ``` ## 样例 #4 ### 样例输入 #4 ``` 12345 67890 1000000 ``` ### 示例输出 #4 ``` 418969939 ```

说明/提示

- 输入为整数 - $ 0\ \le\ x,\ y\ \le\ 10^9 $ - $ 2\ \le\ N\ \le\ 10^6 $ ### 样例解释 1 当按照 $ i $ 的顺序更新为 $ 2,\ 3 $ 时,$ a_{N} $ 的值为 $ 2 $;当按照 $ i $ 的顺序更新为 $ 3,\ 2 $ 时,$ a_{N} $ 的值为 $ 1 $,总和为 $ 3 $。 ### 样例解释 2 无论操作顺序如何,最终 $ a_{N} $ 写入的值始终为 $ 0 $。