CF1832E Combinatorics Problem
/* */ #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> //#include<queue> //#include<vector> //#include<bits/stdc++.h> #define ll long long #define ddd printf("-----------------------\n"); using namespace std; const int maxn=1e7+10 ; const int mod=998244353; const int inf=0x3f3f3f3f; int n,k; ll a[maxn],x,y,m,b[maxn][6],ans; int main() { ios::sync_with_stdio(false); cin>>n>>a[1]>>x>>y>>m>>k; for(int i=2;i<=n;i++) a[i]=(a[i-1]*x+y)%m; for(int i=1;i<=n;i++) b[i][0]=(b[i-1][0]+a[i])%mod; for(int i=1;i<=n;i++){ for(int j=1;j<=k;j++){ b[i][j]=(b[i-1][j]+b[i-1][j-1]+(j==1)*a[i])%mod; } } for(int i=1;i<=n;i++) ans^=b[i][k]*i; cout<<ans<<'\n'; return 0; }