Cod sursa(job #2697182)

Utilizator bem.andreiIceman bem.andrei Data 17 ianuarie 2021 19:26:02
Problema Rsir Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <bits/stdc++.h>

using namespace std;
ifstream r("rsir.in");
ofstream w("rsir.out");
int main()
{
    long long t1, t2, a, b, x, y, z, mod, n;
    long long f1, s1, cur1, f2, s2, cur2;
    r>>t1>>t2>>a>>b>>x>>y>>z>>mod>>n;
    f1=t1;
    s1=t2;
    cur1=a*f1*f1+b*s1*s1+x*f1+y*s1+z;
    cur1%=mod;
    f2=s1;
    s2=cur1;
    cur2=a*f2*f2+b*s2*s2+x*f2+y*s2+z;
    cur2%=mod;
    while(cur2!=cur1 || s2!=s1)
    {
        f1=s1;
        s1=cur1;
        cur1=a*f1*f1+b*s1*s1+x*f1+y*s1+z;
        cur1%=mod;
        f2=cur2;
        s2=a*s2*s2+b*cur2*cur2+x*s2+y*cur2+z;
        s2%=mod;
        cur2=a*f2*f2+b*s2*s2+x*f2+y*s2+z;
        cur2%=mod;
    }
    long long cnt=s1, ans=cur1, dim=1;
    f1=s1;
    s1=cur1;
    cur1=a*f1*f1+b*s1*s1+x*f1+y*s1+z;
    cur1%=mod;
    while(cnt!=s1 || ans!=cur1)
    {
        f1=s1;
        s1=cur1;
        cur1=a*f1*f1+b*s1*s1+x*f1+y*s1+z;
        cur1%=mod;
        dim++;
    }
    n%=dim;
    f1=cnt;
    s1=ans;
    cur1=a*f1*f1+b*s1*s1+x*f1+y*s1+z;
    cur1%=mod;
    for(int i=1; i<n; i++)
    {
        f1=s1;
        s1=cur1;
        cur1=a*f1*f1+b*s1*s1+x*f1+y*s1+z;
        cur1%=mod;
    }
    w<<s1;
    return 0;
}