Pagini recente » Cod sursa (job #9856) | Cod sursa (job #1173334) | Cod sursa (job #2782025) | Cod sursa (job #1702745) | Cod sursa (job #3284633)
// 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;
void nxt(pii &t){
t = {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=start;
nxt(A);
pii B=start;
nxt(B); nxt(B);
while (A!=B){
nxt(A);
nxt(B); nxt(B);
}
int lend=0;
A=start;
while (A!=B){
nxt(A);
nxt(B);
lend++;
}
int lenc=1;
pii art=A;
B=A;
nxt(B);
while (A!=B){
nxt(B);
lenc++;
}
if (n<lend){
A=start;
while (n--)
nxt(A);
fout<<A.fi;
}
else{
n-=lend;
n%=lenc;
A=art;
while (n--)
nxt(A);
fout<<A.fi;
}
return 0;
}