Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main() {
- int n;
- int x, y, generator;
- scanf("%d%d%d%d", &n, &x, &y, &generator);
- int m;
- int z, t, quadrilator;
- scanf("%d%d%d%d", &m, &z, &t, &quadrilator);
- if (m == 0) {
- printf("%d", 0);
- exit(0);
- }
- long long a[n];
- a[0] = generator;
- for (int i = 1; i < n; ++i) {
- generator = (x * generator + y) % 65536;
- a[i] = a[i - 1] + generator;
- }
- long long ultimateSum = 0;
- long long first, second;
- first = quadrilator;
- for (int i = 0; i < m; ++i) {
- second = (z * first + t + 1073741824) % 1073741824;
- long long c1 = first % n;
- long long c2 = second % n;
- ultimateSum += c1 < c2 ? (c1 == 0 ? a[c2] : a[c2] - a[c1 - 1]) : (c2 == 0 ? a[c1] : a[c1] - a[c2 - 1]);
- first = (z * second + t + 1073741824) % 1073741824;
- }
- printf("%lld", ultimateSum);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement