Pagini recente » Cod sursa (job #1002640) | Cod sursa (job #3284909) | Cod sursa (job #1685185) | Cod sursa (job #1699839) | Cod sursa (job #2837029)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rsir.in");
ofstream fout("rsir.out");
#define MAXM 7000
int f[MAXM][MAXM];
int v[10000];
int main()
{
int a, b, x, y, z, m, n, i;
fin >> v[0] >> v[1] >> a >> b >> x >> y >> z >> m >> n;
f[v[0]][v[1]] = 1;
int int_start, int_final;
i = 2;
int ok = 0;
while(ok == 0)
{
v[i] = ((a * v[i - 2] * v[i - 2]) % m + (b * v[i - 1] * v[i - 1]) % m + (x * v[i - 2]) % m + (y * v[i - 1]) % m + z) % m;
if(f[v[i - 1]][v[i]] == 0)
f[v[i - 1]][v[i]] = i + 1;
else
{
int_start = f[v[i - 1]][v[i]] - 1;
int_final = i;
ok = 1;
}
i++;
}
int ciclu = int_final - int_start;
fout << v[(n - int_start) % ciclu];
return 0;
}