Cod sursa(job #2697169)

Utilizator bem.andreiIceman bem.andrei Data 17 ianuarie 2021 19:13:12
Problema Rsir Scor 10
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%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
    f2=s1;
    s2=cur1;
    cur2=a*f2*f2%mod+b*s2*s2%mod+x*f2%mod+y*s2%mod+z%mod;
    while(cur2!=cur1 || s2!=s1){
        f1=s1;
        s1=cur1;
        cur1=a*f1*f1%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
        f2=cur2;
        s2=a*s2*s2%mod+b*cur2*cur2%mod+x*s2%mod+y*cur2%mod+z%mod;
        cur2=a*f2*f2%mod+b*s2*s2%mod+x*f2%mod+y*s2%mod+z%mod;
    }
    long long cnt=s1, ans=cur1, dim=1;
    f1=s1;
    s1=cur1;
    cur1=a*f1*f1%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
    while(cnt!=s1 || ans!=cur1){
        f1=s1;
        s1=cur1;
        cur1=a*f1*f1%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
        dim++;
    }
    n%=dim;
    f1=cnt;
    s1=ans;
    cur1=a*f1*f1%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
    for(int i=1;i<n;i++){
        f1=s1;
        s1=cur1;
        cur1=a*f1*f1%mod+b*s1*s1%mod+x*f1%mod+y*s1%mod+z%mod;
    }
    w<<s1;
    return 0;
}