问题 C:掷标枪

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判 命题人:
提交:4 解决:3

题目描述

掷标枪是田径运动中的一个投掷项目,运动员经过助跑后把标枪投掷出去。

假期里,蒜头君约上他的小伙伴一块儿掷标枪。

总共有 $n$ 个人,所有人依次从同一起点开始向同一方向掷标枪,第 $i$ 个人投掷的距离为 $x_i$

蒜头君想让运动更加有趣,他会统计每个人投出标枪落点的前/后最近标枪的位置。若落点后最近的标枪位于 $behind$,落点前最近的标枪位于 $front$,则满足 $behind < x_i < front$。此时蒜头君给这位小伙伴记:$behind + front$ 分,如果:


  • 标枪落点后方无标枪,则让 $behind = 0$;
  • 标枪落点前方无标枪,则让 $front = 0$;
现在你需要帮蒜头君计算出所有小伙伴得分的总和,并对 $10^9 + 7$ 取模。


输入

输入只有一行,$5$ 个整数,分别表示 $n, A, B, C, a_1$

其中 $n$ 表示共有 $n$ 个人。其余的含义如下:

由于 $n$ 较大,因此需要通过给定的种子$(A,B,C,a_1)$,按照规则生成对应的 $x_i$ ,规则如下:


  • $i\ge 2$ 时,$ a_{i} = (A\times a_{i-1}^{2} + B\times a_{i-1} + C) \% 1000000007$
  • $i\ge 1$ 时,$x_{i} = (a_{i}\%n)+1$
$1\le n\le 10^5$


输出

输出一个整数,表示所有人得分的总和对 $10^9 + 7$ 取模的结果。

样例输入-1 复制

5 2 3 2 3

样例输出-1 复制

18

样例输入-2 复制

10 2 3 4 5

样例输出-2 复制

90

提示

样例解释1:

x = {4,5,2,3,5}

第 1 个人投掷距离 x1 = 4,此时标枪位置:4,可以获得积分 0;

第 2 个人投掷距离 x2 = 5,此时标枪位置:4 5,可以获得积分 4+0=4;

第 3 个人投掷距离 x3 = 2,此时标枪位置:2 4 5,可以获得积分 0+4=4;

第 4 个人投掷距离 x4 = 3,此时标枪位置:2 3 4 5,可以获得积分 2+4=6;

第 5 个人投掷距离 x5 = 5,此时标枪位置:2 3 4 5 5,可以获得积分 4+0=4

因此总获得积分为:0+4+4+6+4=18