Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. using namespace std;
  2.  
  3. int main() {
  4.     int n;
  5.     int x;
  6.     int y;
  7.     int a0;
  8.     int m;
  9.     long long z;
  10.     long long t;
  11.     long long b0;
  12.     cin >> n;
  13.     cin >> x;
  14.     cin >> y;
  15.     cin >> a0;
  16.     cin >> m;
  17.     cin >> z;
  18.     cin >> t;
  19.     cin >> b0;
  20.  
  21.  
  22.     long long sums[n + 1];
  23.     sums[0] = 0;
  24.     sums[1] = a0;
  25.     int delimetr = (1 << 16);
  26.     for (int i = 2; i < n + 1; i++) {
  27.         //a0 = (x * a0 + y) % delimetr;
  28.         a0 = (x * a0 + y) % delimetr;
  29.         sums[i] = sums[i - 1] + a0;
  30.     }
  31.  
  32.  
  33.     long long delimetr2 = (1 << 30);
  34.     long long b1 = ((z * b0 + t + delimetr2) % delimetr2);
  35.     int l, r;
  36.     long long result = 0;
  37.  
  38.     for (int i = 0; i < m; i++) {
  39.         if (b0 % n > b1 % n) {
  40.             l = (int) (b1 % n);
  41.             r = (int) (b0 % n);
  42.         } else {
  43.             r = (int) (b1 % n);
  44.             l = (int) (b0 % n);
  45.         }
  46.         result += sums[r + 1] - sums[l];
  47.         b0 = ((z * b1 + t + delimetr2) % delimetr2);
  48.         b1 = ((z * b0 + t + delimetr2) % delimetr2);
  49.     }
  50.  
  51.     cout << result;
  52.  
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement