Cod sursa(job #2696340)

Utilizator bem.andreiIceman bem.andrei Data 15 ianuarie 2021 18:50:50
Problema Rsir Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <bits/stdc++.h>

using namespace std;
ifstream r("rsir.in");
ofstream w("rsir.out");
int t1, t2, a, b, x, y, z, mod, n;
struct pointer{
    int f, s, cur;
};
int main()
{
    pointer p1, p2;
    r>>t1>>t2>>a>>b>>x>>y>>z>>mod>>n;
    p1.f=t1;
    p1.s=t2;
    p1.cur=a*p1.f*p1.f%mod+b*p1.s*p1.s%mod+x*p1.f%mod+y*p1.s%mod+z%mod;
    p1.cur%=mod;
    p2.f=p1.s;
    p2.s=p1.cur;
    p2.cur=a*p2.f*p2.f%mod+b*p2.s*p2.s%mod+x*p2.f%mod+y*p2.s%mod+z%mod;
    p2.cur%=mod;
    int cnt=1;
    while(p2.cur!=p1.cur || p2.s!=p1.s){
        cnt++;
        p1.f=p1.s;
        p1.s=p1.cur;
        p1.cur=a*p1.f*p1.f%mod+b*p1.s*p1.s%mod+x*p1.f%mod+y*p1.s%mod+z%mod;
        p1.cur%=mod;
        p2.f=p2.cur;
        p2.s=a*p2.s*p2.s%mod+b*p2.cur*p2.cur%mod+x*p2.s%mod+y*p2.cur%mod+z%mod;
        p2.s%=mod;
        p2.cur=a*p2.f*p2.f%mod+b*p2.s*p2.s%mod+x*p2.f%mod+y*p2.s%mod+z%mod;
        p2.cur%=mod;
    }
    n%=cnt;
    for(int i=0;i<n;i++){
        p1.f=p1.s;
        p1.s=p1.cur;
        p1.cur=a*p1.f*p1.f%mod+b*p1.s*p1.s%mod+x*p1.f%mod+y*p1.s%mod+z%mod;
        p1.cur%=mod;
    }
    w<<p1.s;
    return 0;
}