Pagini recente » Cod sursa (job #1489493) | Cod sursa (job #1343358) | Cod sursa (job #1295921) | Cod sursa (job #2663074) | Cod sursa (job #1389487)
#include <fstream>
using namespace std;
ifstream f("rsir.in");
ofstream g("rsir.out");
long long T0,T1,a,b,x,y,z,M,N;
void Solve()
{
T0%=M;
T1%=M;
a%=M;
b%=M;
x%=M;
y%=M;
z%=M;
long long poz=1,period;
int x=T0,y=T1;
int aux=T1;
T1=T0*T0*a+T1*T1*b+x*T0+y*T1+z;
T1%=M;
T0=aux;
while(1)
{
if(x==T0 && y==T1)
break;
++poz;
if(poz==N)
{
g<<T1<<"\n";
return;
}
int aux=T1;
T1=T0*T0*a+T1*T1*b+x*T0+y*T1+z;
T1%=M;
T0=aux;
}
++poz;
int diff=poz-1;
N=N-poz+1;
N%=diff;
for(int i=2;i<=N;i++)
{
int aux=T1;
T1=T0*T0*a+T1*T1*b+x*T0+y*T1+z;
T1%=M;
T0=aux;
}
g<<T1<<"\n";
}
int main()
{
f>>T0>>T1>>a>>b>>x>>y>>z>>M>>N;
Solve();
return 0;
}