Pagini recente » Cod sursa (job #926386) | Cod sursa (job #1652558) | Cod sursa (job #2717707) | Cod sursa (job #1865128) | Cod sursa (job #1389469)
#include <fstream>
using namespace std;
ifstream f("rsir.in");
ofstream g("rsir.out");
long long T0,T1,a,b,x,y,z,M,N;
int Matrix[7005][7005];
void Solve()
{
T0%=M;
T1%=M;
a%=M;
b%=M;
x%=M;
y%=M;
z%=M;
long long poz=1,period;
Matrix[T0][T1]=1;
int aux=T1;
T1=T0*T0*a+T1*T1*b+x*T0+y*T1+z;
T1%=M;
T0=aux;
while(Matrix[T0][T1]==0)
{
Matrix[T0][T1]=++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-Matrix[T0][T1];
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;
}