Pagini recente » Cod sursa (job #1390334) | Cod sursa (job #2668047) | Cod sursa (job #2221885) | Istoria paginii runda/simularebaza2/clasament | Cod sursa (job #475090)
Cod sursa(job #475090)
#include<fstream>
using namespace std;
const char iname[]="rsir.in";
const char oname[]="rsir.out";
const int maxn=7005;
ifstream f(iname);
ofstream g(oname);
int m,n,i,j,a[maxn],b[maxn],x,y,u,v,p,q,z;
inline void next()
{
int aux=a[p]+b[q]+z;
while(aux>=m)
aux-=m;
p=q;q=aux;
}
int main()
{
f>>p>>q>>u>>v>>x>>y>>z>>m>>n;
for(i=0;i<m;++i)
a[i]=(1LL*u*u*i+1LL*x*i)%m,
b[i]=(1LL*v*v*i+1LL*y*i)%m;
for(i=1;i<=m*m&&i<=n;++i)
next();
x=p;
y=q;
if(i==n+1)
{
g<<x<<"\n";
return 0;
}
n-=m*m;
for(i=1;i<=n;++i)
{
next();
if(p==x&&q==y)
break;
}
n-=i;
n%=i;
for(i=1;i<n;++i)
next();
g<<p<<"\n";
}