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