Pagini recente » Cod sursa (job #2055466) | Cod sursa (job #2594826) | Cod sursa (job #1685776) | Cod sursa (job #1972809) | Cod sursa (job #1275180)
#include <cstdio>
#include <algorithm>
using namespace std;
int a,b,x,y,z,mod;
pair<int,int> nextelement(pair<int,int> p)
{
int t=p.first,t1=p.second;
return make_pair(t1,(a*t*t+b*t1*t1+x*t+y*t1+z)%mod);
}
int main()
{
freopen("rsir.in", "r", stdin);
freopen("rsir.out", "w", stdout);
int t0,t1,nr1=0,nr2=0;
long long n;
scanf("%d%d%d%d%d%d%d%d%lld",&t0,&t1,&a,&b,&x,&y,&z,&mod,&n);
t0%=mod;t1%=mod;
pair<int,int> p=make_pair(t0,t1),p1=make_pair(t0,t1);
do
{
nr1++;
p=nextelement(p);
p1=nextelement(nextelement(p1));
}while(p!=p1);
do
{
nr2++;
p=nextelement(p);
}while(p!=p1);
if(n<=nr1)
{
p=make_pair(t0,t1);
for(int i=2;i<=n;i++) p=nextelement(p);
}
else
{
n-=nr1;
n%=nr2;
if(!n) n+=nr2;
for(int i=2;i<=n;i++) p=nextelement(p);
}
printf("%d",p.second);
return 0;
}