rt
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e8 + 233;
int n, A, B, C, a[maxn];
long double ans = 0.000;
int main() {
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;
for (int i = 1; i <= n; i++) {
int _next = i + 1;
if (i == n)_next = 1;
if (a[i] >= a[_next]) {
ans += 1.000 / ((long double)a[_next] * (1.000 / (long double)a[_next] * a[i]));
}
else if (a[i] < a[_next]) {
ans += 1.000 / ((long double)a[i] * (1.000 / (long double)a[i] * a[_next]));
}
}printf("%.3lf\n", ans);
return 0;
}
请大佬赐教