题目描述
试卷上共有 $n$ 道单选题,第 $i$ 道单选题有 $a_i$ 个选项,这 $a_i$ 个选项编号是 $1,2,3,\cdots,a_i$,每个选项成为正确答案的概率都是相等的。
假设你没有做错任何题目,只是答案抄错位置了:你将第 $i$ 道题目的答案抄到了答题纸上的第 $i+1$ 道题目的位置上,特别地,第 $n$ 道题目的答案抄到了第 $1$ 道题目的位置上。求做对题目数的期望值 $E(ans)$。
输入
输入只有一行,为 $5$ 个整数 $n,A,B,C,a_1$。
数据由这五个整数参数生成。
数据生成程序如下:
```
scanf("%d%d%d%d%d", &n, &A, &B, &C, a + 1);
for (int i = 2; i <= n; i++)
a[i] = ((long long) a[i - 1] * A + B) % 100000001;
for (int i = 1; i <= n; i++)
a[i] = a[i] % C + 1;
```
其中 $n$ 和 $a_i$ 的定义见题目描述。
输出
输出一个实数 $E(Ans)$,表示做对题目数的期望值,保留 $3$ 位小数(其中 $Ans$ 表示答对的总题数)。
样例输入输出
提示
对于 $30\%$ 的数据,$n \leq 10$,$C \leq 10$;
对于 $80\%$ 的数据,$n \leq 10^4$,$C \leq 10$。
对于 $90\%$ 的数据,$n \leq 5\times 10^5$,$C \leq 10^8$。
对于 $100\%$ 的数据,$1 \leq n \leq 10^7$,$0 < A,B,C \leq 10^8$,$1 \leq a_i \leq 10^8$。