Cod sursa(job #2837044)

Utilizator Luca_CristianZamfir Luca-Cristian Luca_Cristian Data 21 ianuarie 2022 16:14:46
Problema Rsir Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("rsir.in");
ofstream fout("rsir.out");

#define MAXM 7000


int f[MAXM][MAXM];
int main()
{
    int a, b, x, y, z, m, n, i, t0, t1;

    fin >> t0 >> t1 >> a >> b >> x >> y >> z >> m >> n;
    int start = t0, finall = t1;



    i = 2;
    int ok = 0, cop, int_start, int_final;

    f[t0][t1] = 1;
    while(ok == 0)
    {
        cop = t1;
        t1 = ((a * t0 * t0) % m + (b * t1 * t1) % m + (x * t0) % m + (y * t1) % m + z) % m;
        t0 = cop;

        if(f[t0][t1] == 0)
           f[t0][t1] = i + 1;
        else
        {
            int_start = f[t0][t1] - 1;
            int_final = i;
            ok = 1;
        }
        i++;
    }

    t0 = start;
    t1 = finall;
    for(i = 2; i <= (n - int_start) % (int_final - int_start) + int_start; i++)
    {
        cop = t1;
        t1 = ((a * t0 * t0) % m + (b * t1 * t1) % m + (x * t0) % m + (y * t1) % m + z) % m;
        t0 = cop;
    }
    fout << t1;

    return 0;
}