Pagini recente » Cod sursa (job #925704) | Cod sursa (job #2952762) | Cod sursa (job #2535273) | Cod sursa (job #1629851) | Cod sursa (job #2696342)
#include <bits/stdc++.h>
using namespace std;
ifstream r("rsir.in");
ofstream w("rsir.out");
int main()
{
int t1, t2, a, b, x, y, z, mod, n;
int f1, s1, cur1, f2, s2, cur2;
r>>t1>>t2>>a>>b>>x>>y>>z>>mod>>n;
f1=t1;
s1=t2;
cur1=a*f1*f1%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
cur1%=mod;
f2=s1;
s2=cur1;
cur2=a*f2*f2%mod+b*s2*s2%mod+x*f2%mod+y*s2%mod+z%mod;
cur2%=mod;
int cnt=1;
while(cur2!=cur1 || s2!=s1){
cnt++;
f1=s1;
s1=cur1;
cur1=a*f1*f1%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
cur1%=mod;
f2=cur2;
s2=a*s2*s2%mod+b*cur2*cur2%mod+x*s2%mod+y*cur2%mod+z%mod;
s2%=mod;
cur2=a*f2*f2%mod+b*s2*s2%mod+x*f2%mod+y*s2%mod+z%mod;
cur2%=mod;
}
n%=cnt;
for(int i=0;i<n;i++){
f1=s1;
s1=cur1;
cur1=a*f1*f1%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
cur1%=mod;
}
w<<s1;
return 0;
}