Pagini recente » Cod sursa (job #2974154) | Cod sursa (job #33913) | Cod sursa (job #2672124) | Cod sursa (job #1725060) | Cod sursa (job #1240668)
#include <cstdio>
using namespace std;
long long p1[7005],p2[7005],m,p3[7005],p4[7005];
long long T0,T1,n,T2,T3,T4,a,b,x,y,z;
inline void Precalcul()
{
int i;
for(i=0;i<m;++i) p1[i]=(1LL*i*i*a)%m;
for(i=0;i<m;++i) p2[i]=(1LL*i*i*b)%m;
for(i=0;i<m;++i) p3[i]=(1LL*i*x)%m;
for(i=0;i<m;++i) p4[i]=(1LL*i*y)%m;
}
int main()
{
int pas;
freopen ("rsir.in","r",stdin);
freopen ("rsir.out","w",stdout);
scanf("%lld%lld%lld%lld%lld%lld%lld%lld%lld", &T0,&T1,&a,&b,&x,&y,&z,&m,&n);
Precalcul();
T0%=m; T1%=m;
T2=T1;
T3 =( p1[T0] + p2[T1] + p3[T0] + p4[T1] + z )%m;
for(pas=3;!(T2==T0 && T3==T1);++pas)
{
T4 = (p1[T2] + p2[T3] + p3[T2] + p4[T3] + z)%m;
T2=T3; T3=T4;
}
n%=(pas-2);
T2=T1;
T3 =( p1[T0] + p2[T1] + p3[T0] + p4[T1] + z )%m;
for(pas=3;pas<=n;++pas)
{
T4 = (p1[T2] + p2[T3] + p3[T2] + p4[T3] + z)%m;
T2=T3; T3=T4;
}
printf("%lld\n", T3);
return 0;
}