乘法要爆long long改成慢速乘或者二位高精就好了
#include<cstdio>
#include<cstring>
#include<iostream>
#define LL long long
#define rep(i,n) for(int i=1;i<=n;i++)
using namespace std;
LL mat[3][3],n,m,a,c,x0,g,ans[3][3],e[3][3];
LL mul(LL a,LL b){
LL ans=0;
for(;b;b>>=1){
if(b&1)ans=(ans+a)%m;
a=(a+a)%m;
}
return ans;
}
void calc(LL a[3][3],LL b[3][3],LL c[3][3]){
rep(i,2)rep(j,2)e[i][j]=0;
rep(i,2)rep(j,2)rep(k,2){
e[i][j]=(e[i][j]+mul(a[i][k],b[k][j]))%m;
}
rep(i,2)rep(j,2)c[i][j]=e[i][j];
}
void mull(LL a[3][3],LL y){
ans[1][1]=ans[2][2]=1ll;
for(;y;y>>=1ll){
if(y&1ll)calc(ans,a,ans);
calc(a,a,a);
}
}
int main(){
cin>>m>>a>>c>>x0>>n>>g;
mat[1][1]=a,mat[1][2]=1,mat[2][2]=1;
mull(mat,n);
mat[1][1]=x0,mat[2][1]=c,mat[1][2]=0,mat[2][2]=0;
calc(ans,mat,mat);
printf("%lld\n",mat[1][1]%g);
return 0;
}