问题 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$;
输入
输入只有一行,$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$
输出
输出一个整数,表示所有人得分的总和对 $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