#include using namespace std; const unsigned long long mod=(1LL<<32); unsigned int a,b,c,d,n; unsigned long long /*unsigned int*/ v1,v2,vrez; /*unsigned int fastpow(unsigned int num,unsigned int p) { unsigned int rez=1; for(;p>0;p>>=1) { if(p&1)rez=((long long)rez*(long long)num)%mod; num=((long long)num*(long long)num)%mod; } return rez; }*/ unsigned int fastpow(unsigned int num,unsigned int p) { unsigned int rez=1; for(;p>0;p>>=1) { if(p&1)rez=rez*num; num=num*num; } return rez; } unsigned int clever_mult(unsigned int num,unsigned int p) { unsigned int rez=num; for(int i=1;i<32;++i) { if(p&(1<>a>>b>>c>>d>>n; //b=(b*c+d)%mod; b=(clever_mult(b,c)+d); //b=((unsigned long long)b*(unsigned long long)c+(unsigned long long)d)%mod; v1=fastpow(a,b); vrez=v1; for(int i=2;i<=n;++i) { //b=((long long)b*(long long)c+(long long)d)%mod; b=(clever_mult(b,c)+d); //b=((unsigned long long)b*(unsigned long long)c+(unsigned long long)d)%mod; v2=fastpow(a,b); vrez^=v2; } fstream fout; fout.open("power.out"); fout<