Pagini recente » Cod sursa (job #1177342) | Cod sursa (job #556484) | Cod sursa (job #294794) | Cod sursa (job #3229958) | Cod sursa (job #3284630)
// Author: Tanasescu Andrei-Rares
/*
█████╗ ██████╗ ████████╗
██╔══██╗ ██╔══██╗╚══██╔══╝
███████║ ██████╔╝ ██║
██╔══██║ ██╔══██╗ ██║
██║ ██║ ██║ ██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝
*/
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <queue>
#include <stack>
#include <deque>
#include <iomanip>
#include <vector>
#include <cassert>
#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;
typedef pair<ll, ll> pll;
const ll Nmax=1e6+5, inf=1e9+5;
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()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
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;
}