Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3. int main(){
  4. int x , y , a0, z , t , bigtwo , two;
  5. long long b , n , m , ans=0;
  6. cin >> n >> x >> y >> a0;
  7. cin >> m >> z >> t >> b;
  8. vector<int> a(n);
  9. vector<long long> s(n+1);
  10. s[0]=0 ; a[0]=a0 ; bigtwo=((1<<30)-1) , two=((1<<16)-1) ;
  11. for(int i = 1; i < n; i++){
  12. a[i]=(x*a[i-1]+y)&two;
  13. s[i]=a[i-1]+s[i-1];
  14. }
  15. for(int i = 1; i < n+1; i++){
  16. s[i]=a[i-1]+s[i-1];
  17. }
  18. a.clear() ;
  19. /*for(int i = 1; i < 2*m; i++){
  20. b=(z*b+t)&bigtwo ;
  21. c[i]=b%n ;
  22. }
  23. for(int i = 1; i < 2*m; i+=2){
  24. ans+=s[max(c[i] , c[i-1])+1]-s[min(c[i-1], c[i])];
  25. }
  26. c.clear() ; s.clear() ;*/
  27. long long l , r ;
  28. for(int i = 0; i < 2*m; i+=2){
  29. l=b%n ;
  30. b=(z*b+t)&bigtwo ;
  31. r=b%n ;
  32. b=(z*b+t)&bigtwo ;
  33. ans+=s[max(r,l)+1]-s[min(l, r)];
  34. }
  35. cout << ans ;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement