Pagini recente » Cod sursa (job #2168512) | Cod sursa (job #111162) | Cod sursa (job #1043634) | Cod sursa (job #823785) | Cod sursa (job #2696340)
#include <bits/stdc++.h>
using namespace std;
ifstream r("rsir.in");
ofstream w("rsir.out");
int t1, t2, a, b, x, y, z, mod, n;
struct pointer{
int f, s, cur;
};
int main()
{
pointer p1, p2;
r>>t1>>t2>>a>>b>>x>>y>>z>>mod>>n;
p1.f=t1;
p1.s=t2;
p1.cur=a*p1.f*p1.f%mod+b*p1.s*p1.s%mod+x*p1.f%mod+y*p1.s%mod+z%mod;
p1.cur%=mod;
p2.f=p1.s;
p2.s=p1.cur;
p2.cur=a*p2.f*p2.f%mod+b*p2.s*p2.s%mod+x*p2.f%mod+y*p2.s%mod+z%mod;
p2.cur%=mod;
int cnt=1;
while(p2.cur!=p1.cur || p2.s!=p1.s){
cnt++;
p1.f=p1.s;
p1.s=p1.cur;
p1.cur=a*p1.f*p1.f%mod+b*p1.s*p1.s%mod+x*p1.f%mod+y*p1.s%mod+z%mod;
p1.cur%=mod;
p2.f=p2.cur;
p2.s=a*p2.s*p2.s%mod+b*p2.cur*p2.cur%mod+x*p2.s%mod+y*p2.cur%mod+z%mod;
p2.s%=mod;
p2.cur=a*p2.f*p2.f%mod+b*p2.s*p2.s%mod+x*p2.f%mod+y*p2.s%mod+z%mod;
p2.cur%=mod;
}
n%=cnt;
for(int i=0;i<n;i++){
p1.f=p1.s;
p1.s=p1.cur;
p1.cur=a*p1.f*p1.f%mod+b*p1.s*p1.s%mod+x*p1.f%mod+y*p1.s%mod+z%mod;
p1.cur%=mod;
}
w<<p1.s;
return 0;
}