Pagini recente » Cod sursa (job #2735258) | Cod sursa (job #2625074) | Cod sursa (job #1546278) | Cod sursa (job #2535211) | Cod sursa (job #417760)
Cod sursa(job #417760)
#include<stdio.h>
short int t0,t1,ti0,ti1,a,b,x,y,z,m,v1[7005],v2[7005];
long long n;
inline void next()
{
short int x=(v1[t0]+v2[t1]+z)%m;
while(x>=m)
x-=m;
t0=t1;
t1=x;
}
void rez()
{
int i;
ti0=t0;
ti1=t1;
for(i=1,next();ti0!=t0 || ti1!=t1;i++,next());
n=n%i;
while(n--)
next();
printf("%hd\n",t0);
}
int main()
{
freopen("rsir.in","r",stdin);
freopen("rsir.out","w",stdout);
int x1,x2;
scanf("%d%d%hd%hd%hd%hd%hd%hd%lld",&x1,&x2,&a,&b,&x,&y,&z,&m,&n);
t0=x1%m;
t1=x2%m;
z=z%m;
int i;
for(i=0;i<m;i++)
{
v1[i]=((long long)a*i*i+x*i)%m;
v2[i]=((long long)b*i*i+y*i)%m;
}
for(i=1;i<=n && i<=m*m;i++)
next();
i--;
n-=i;
if(!n)
{
printf("%hd\n",t0);
return 0;
}
rez();
return 0;
}