Pagini recente » Cod sursa (job #1586346) | Cod sursa (job #36450) | Cod sursa (job #2733486) | Cod sursa (job #803249) | Cod sursa (job #1240673)
#include <cstdio>
using namespace std;
int p1[7005],p2[7005],m,p3[7005],p4[7005];
int 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;
long long t0,t1,N;
freopen ("rsir.in","r",stdin);
freopen ("rsir.out","w",stdout);
scanf("%lld%lld%d%d%d%d%d%d%lld", &t0,&t1,&a,&b,&x,&y,&z,&m,&N);
Precalcul();
T0=t0%m; T1=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=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("%d\n", T3);
return 0;
}