Pagini recente » Cod sursa (job #1877575) | Cod sursa (job #2047615) | Cod sursa (job #1479476) | Cod sursa (job #1873326) | Cod sursa (job #1240671)
#include <cstdio>
using namespace std;
int 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;
}
inline int Modulo(int x)
{
while(x>=m) x-=m;
return x;
}
int main()
{
int pas;
freopen ("rsir.in","r",stdin);
freopen ("rsir.out","w",stdout);
scanf("%lld%lld%lld%lld%lld%lld%lld%d%lld", &T0,&T1,&a,&b,&x,&y,&z,&m,&n);
Precalcul();
T0%=m; T1%=m;
T2=T1;
T3 =Modulo( p1[T0] + p2[T1] + p3[T0] + p4[T1] + z );
for(pas=3;!(T2==T0 && T3==T1);++pas)
{
T4 = Modulo(p1[T2] + p2[T3] + p3[T2] + p4[T3] + z);
T2=T3; T3=T4;
}
n%=(pas-2);
T2=T1;
T3 =Modulo( p1[T0] + p2[T1] + p3[T0] + p4[T1] + z );
for(pas=3;pas<=n;++pas)
{
T4 = Modulo(p1[T2] + p2[T3] + p3[T2] + p4[T3] + z);
T2=T3; T3=T4;
}
printf("%lld\n", T3);
return 0;
}