Pagini recente » Cod sursa (job #510062) | Cod sursa (job #2441610) | Cod sursa (job #2104207) | Cod sursa (job #13109) | Cod sursa (job #264030)
Cod sursa(job #264030)
#include<stdio.h>
#include<fstream.h>
int main()
{
int V0[7000],V1[7000],T0,T1,a,b,x,y,z,m,t0,t1,t2,a0,a1,a2,i,k,l;
long long n;
ifstream f1("rsir.in");
f1>>T0>>T1>>a>>b>>x>>y>>z>>m>>n;
for(i=0;i<m;++i)
{
V0[i]=(a*i%m*i+x*i)%m;
V1[i]=(b*i%m*i+y*i)%m;
}
t0=T0%m; t1=T1%m; k=m*m;
for(i=1;i<k;++i)
{
t2=V0[t0]+V1[t1]+z;
if(t2>=m)
t2-=m;
if(t2>=m)
t2-=m;
t0=t1; t1=t2;
}
a0=t0; a1=t1; k=0;
do
{
a2=V0[a0]+V1[a1]+z;
if(a2>=m)
a2-=m;
if(a2>=m)
a2-=m;
a0=a1; a1=a2; ++k;
}
while(a0!=t0 || a1!=t1);
a0=t0=T0%m; a1=t1=T1%m;
for(i=0;i<k;++i)
{
t2=V0[t0]+V1[t1]+z;
if(t2>=m)
t2-=m;
if(t2>=m)
t2-=m;
t0=t1; t1=t2;
}
l=0;
while(a0!=t0 || a1!=t1)
{
++l;
t2=V0[t0]+V1[t1]+z;
if(t2>=m)
t2-=m;
if(t2>=m)
t2-=m;
t0=t1; t1=t2;
a2=V0[a0]+V1[a1]+z;
if(a2>=m)
a2-=m;
if(a2>=m)
a2-=m;
a0=a1; a1=a2;
}
if(n<l)
t0=T0%m, t1=T1%m, k=n;
else
k=(n-l)%k;
for(i=0;i<k;++i)
{
t2=V0[t0]+V1[t1]+z;
if(t2>=m)
t2-=m;
if(t2>=m)
t2-=m;
t0=t1; t1=t2;
}
ofstream f2("rsir.out");
f2<<t0;
return 0;
}