Pagini recente » Cod sursa (job #947145) | Cod sursa (job #2247316) | Cod sursa (job #910372) | Cod sursa (job #3265414) | Cod sursa (job #3284631)
// Author: Tanasescu Andrei-Rares
/*
█████╗ ██████╗ ████████╗
██╔══██╗ ██╔══██╗╚══██╔══╝
███████║ ██████╔╝ ██║
██╔══██║ ██╔══██╗ ██║
██║ ██║ ██║ ██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝
*/
#include <iostream>
#include <fstream>
#pragma GCC optimize("O3")
#define fi first
#define se second
#define pb push_back
#define pf push_front
using namespace std;
ifstream fin ("rsir.in");
ofstream fout ("rsir.out");
typedef long long ll;
typedef pair<int, int> pii;
ll a, b, x, y, z, t0, t1, MOD;
ll n;
pii nxt(pii t){
return {t.se, (a*t.fi*t.fi + b*t.se*t.se + x*t.fi + y*t.se + z)%MOD};
}
int main()
{
fin>>t0>>t1>>a>>b>>x>>y>>z>>MOD>>n;
pii start={t0%MOD, t1%MOD};
pii A=nxt(start);
pii B=nxt(nxt(start));
while (A!=B){
A=nxt(A);
B=nxt(nxt(B));
}
int lend=0;
A=start;
while (A!=B){
A=nxt(A);
B=nxt(B);
lend++;
}
int lenc=1;
pii art=A;
B=nxt(A);
while (A!=B){
B=nxt(B);
lenc++;
}
if (n<lend){
A=start;
while (n--)
A=nxt(A);
fout<<A.fi;
}
else{
n-=lend;
n%=lenc;
A=art;
while (n--)
A=nxt(A);
fout<<A.fi;
}
return 0;
}