Cod sursa(job #1808799)

Utilizator Kln1000Ciobanu Bogdan Kln1000 Data 18 noiembrie 2016 09:50:01
Problema Rsir Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;

ifstream f ("rsir.in");
ofstream t ("rsir.out");

int mod,a,b,x,y,z,t0,t1,v[7010],w[7010];
long long n;

void method(){
    long long aux=v[t0]+w[t1]+z;
    while(aux>=mod)
        aux-=mod;
    t0=t1;t1=aux;}

void preprocess(){
    for (int i=0;i<mod;++i){
        v[i]=(1LL*a*i*i+1LL*x*i)%mod;
        w[i]=(1LL*b*i*i+1LL*y*i)%mod;}
};

int main()
{
    f>>t0>>t1>>a>>b>>x>>y>>z>>mod>>n;
    long long aux=mod*mod,i;
    preprocess();
    for (i=0;i<n and i<aux;++i)
        method();
    x=t0;
    y=t1;
    if (i==n){
        t<<x;goto fin;}
    n-=aux;
    for (i=0;i<n;++i){
        method();if (t0==x and t1==y) break;}
    n%=i;
    for (i=0;i<n;++i)
        method();
    t<<t0;
    fin:return 0;
}