Pagini recente » Cod sursa (job #2451902) | Cod sursa (job #2141786) | Cod sursa (job #537139) | Cod sursa (job #795977) | Cod sursa (job #68725)
Cod sursa(job #68725)
#include<stdio.h>
int t1;
int t0;
int a;
int b;
int x;
int y;
int z;
long long n;
int m;
short t21;
short t11;
short t22;
short t12;
int move1;
inline int mod(int i)
{
return i - (i / m) * m;
}
inline int sqr(short i)
{
return mod(i * i);
}
void trans(short &p1,short &p2)
{
short aux = p1;
p1 = p2;
p2 = mod(((a * sqr(aux)) + (b * sqr(p2)) + (x * aux) + (y * p2) + z));
}
int main()
{
freopen("rsir.in","r",stdin);
freopen("rsir.out","w",stdout);
scanf("%d %d %d %d %d %d %d %d %lld",&t0,&t1,&a,&b,&x,&y,&z,&m,&n);
t0 %= m;
t1 %= m;
t21 = t0;
t22 = t1;
t11 = t0;
--n;
t12 = t1;
while(t12 != t22 || t11 != t21 || move1 == 0)
{
trans(t11,t12);
move1++;
if (move1 == n)
{
printf("%d\n",t12);
return 0;
}
trans(t21,t22);
trans(t21,t22);
}
n -= move1;
move1 = 0;
while(t12 != t22 || t11 != t21 || move1 == 0)
{
trans(t11,t12);
move1++;
}
n %= move1;
while(n)
{
trans(t11,t12);
--n;
}
printf("%d\n",t12);
return 0;
}