fork download
  1. #pragma GCC optimize("Ofast")
  2. #pragma GCC optimize("unroll-loops")
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5. using ll = long long;
  6. using lld = double;
  7. #define srt(a) sort(a.begin(),a.end());
  8. #define rsrt(a) sort(a.rbegin(),a.rend());
  9. #define pb push_back
  10. using pll=pair<ll,ll>;
  11. #define fi(a,b,c) for(ll a=b;a<c;a++)
  12. #define f(a,c) for(ll a=0;a<c;a++)
  13. #define rf(a,c) for(ll a=c;a>=0;a--)
  14. #define cye cout<<"Yes\n"
  15. #define cno cout<<"No\n"
  16. #define vll vector<ll>
  17. ll mod=1e9+7,N=1e6;
  18. int main(){
  19. ios_base::sync_with_stdio(false);
  20. cin.tie(NULL);
  21. cout.tie(NULL);
  22. ll t;
  23. t=1;
  24. while(t--){
  25. ll n,k;
  26. cin>>n>>k;
  27. ll x,p,q,r;
  28. cin>>x>>p>>q>>r;
  29. vll a(n);
  30. priority_queue<ll,vll,greater<ll>> ba,bb;
  31. a[0]=x;
  32. fi(i,1,n){
  33. x=(p*x+q)%r;
  34. a[i]=x;
  35. }
  36. ll ans=0,c=1e11;
  37. f(i,k){
  38. c=min(a[i],c);
  39. ba.push(a[i]);
  40. }
  41. ans^=c;
  42. cout<<c<<' ';
  43. fi(i,k,n){
  44. if(!bb.empty()&&ba.top()==bb.top()){ba.pop();bb.pop();}
  45. if(ba.top()==a[i-k])ba.pop();
  46. else bb.push(a[i-k]);
  47. c=ba.top();
  48. ba.pop();
  49. cout<<c<<' ';
  50. ans^=c;
  51. }
  52. cout<<ans<<'\n';
  53. }
  54. return 0;
  55. }
Success #stdin #stdout 0s 5316KB
stdin
8 5
3 7 1 11
stdout
0 0 1 2 3