Pagini recente » Cod sursa (job #1135969) | Cod sursa (job #1166302) | Cod sursa (job #2694046) | Cod sursa (job #1524398) | Cod sursa (job #1560919)
#include <fstream>
using namespace std;
ifstream f("rsir.in");
ofstream g("rsir.out");
int a,b,x,y,z,m,poz;
long long i,n;
int ct0[7001],ct1[7001];
typedef pair<int,int> pere;
pere t,p,q;
void pleaca(pere &i)
{
int j=i.second;
i.second=(ct0[i.first]+ct1[i.second])%m;
i.first=j;
}
int main()
{
f>>t.first>>t.second>>a>>b>>x>>y>>z>>m>>n;
a%=m; b%=m; x%=m; y%=m; z%=m;
t.first%=m;
t.second%=m;
for (i=0;i<m;i++)
{
ct0[i]=(a*i*i+x*i+z)%m;
ct1[i]=(b*i*i+y*i)%m;
}
if (n==1)
{g<<t.second; return 0;}
else if (n==0) {g<<t.first; return 0;}
p=q=t; poz=1;
pleaca(p);
pleaca(q);
pleaca(q);
while(p!=q)
{
if (poz==n) {g<<p.first; return 0;} //coada
poz++;
pleaca(p);
pleaca(q);
pleaca(q);
}
n%=poz; //ciclu
for(i=1;i<=n;i++)
pleaca(p);
g<<p.first;
return 0;
}