Pagini recente » Cod sursa (job #324098) | Cod sursa (job #3150220) | Cod sursa (job #1265717) | Cod sursa (job #163528) | Cod sursa (job #1679189)
# include <fstream>
using namespace std;
ifstream fin("rsir.in");
ofstream fout("rsir.out");
struct inter {
int f;
int s;
};
inter a1,v1,v2;
long long n;
int a,b,x,y,z,m,MOD,e1,e2,c,i,l;
inter next (inter a1){
long long aux=a1.f;
a1.f=a*a1.s*a1.s;
a1.f%=MOD;
a1.f+=b*aux*aux;
a1.f%=MOD;
a1.f+=x*a1.s;
a1.f%=MOD;
a1.f+=y*aux;
a1.f%=MOD;
a1.f+=z;
a1.f%=MOD;
a1.s=aux;
return a1;
}
int main () {
fin>>e1>>e2>>a>>b>>x>>y>>z>>m>>n;
e1%=m;
e2%=m;
a %=m;
b %= m;
x %= m;
y %= m;
z %= m;
v1.f=e2;
v1.s=e1;
v2.f=e2;
v2.s=e1;
MOD=m;
do{
v1=next(v1);
v2=next(next(v2));
}
while(v1.f!=v2.f||v1.s!=v2.s);
v2=v1;
do{
v2=next(v2);
c++;
}
while(v1.f!=v2.f||v1.s!=v2.s);
v1.f=e2;
v1.s=e1;
v2=v1;
for(i=2;i<=c+1;i++){
v1=next(v1);
}
while(v1.f!=v2.f||v1.s!=v2.s){
v2=next(v2);
v1=next(v1);
l++;
}
v2.f=v1.f;
v2.s=v1.s;
v1.f=e2;
v1.s=e1;
if(l>=n){
for(i=1;i<=n;i++)
v1=next(v1);
fout<<v1.s<<"\n";
}
else{
n-=l;
n%=c;
for(i=1;i<=n;i++){
v2=next(v2);
}
fout<<v2.s<<"\n";
}
return 0;
}