Cod sursa(job #1389487)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 16 martie 2015 12:20:54
Problema Rsir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#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;
}