Pagini recente » Cod sursa (job #2306966) | Cod sursa (job #2329840) | Cod sursa (job #2853599) | Cod sursa (job #1190057) | Cod sursa (job #2837044)
#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;
}