Pagini recente » Cod sursa (job #1104892) | Cod sursa (job #995343) | Cod sursa (job #2557652) | Cod sursa (job #1186344) | Cod sursa (job #1678776)
#include<fstream>
#define f first
#define s second
using namespace std;
int a, b, x, y, z, nr, i, nr1, m, aux;
pair<int, int> frst, p, q;
long long n;
int v[7005], w[7005];
ifstream fin("rsir.in");
ofstream fout("rsir.out");
pair<int, int> next(const pair<int, int> &p){
pair<int, int> pnext;
pnext.f = p.s;
pnext.s = v[p.f] + w[p.s] + z;
if(pnext.s >= m){
pnext.s -= m;
}
if(pnext.s >= m){
pnext.s -= m;
}
return pnext;
}
int main(){
fin>> frst.f >> frst.s >> a >> b >> x >> y >> z >> m >> n;
frst.f %= m;
frst.s %= m;
a %=m;
b %= m;
x %= m;
y %= m;
z %= m;
for(i = 0; i < m; i++){
v[i] = (a * i % m * i + x * i) % m;
w[i] = (b * i % m * i + y * i) % m;
}
p = q = frst;
do{
p = next(p);
q = next( next(q) );
}while(p != q);
do{
nr++;
p = next(p);
}while(p != q);
p = q = frst;
for(i = 1; i <= nr; i++){
p = next(p);
}
while(p != q){
nr1++;
p = next(p);
q = next(q);
}
if(n < nr1){
p = frst;
for(i = 1; i <= n; i++){
p = next(p);
}
fout<< p.f <<"\n";
}
else{
/* p = frst;
for(i = 1; i <= nr1; i++){
p = next(p);
}*/
n -= nr1;
aux = n % nr;
for(i = 1; i <= aux; i++){
p = next(p);
}
fout<< p.f <<"\n";
}
return 0;
}