Pagini recente » Cod sursa (job #3196622) | Cod sursa (job #402939) | Cod sursa (job #2115036) | Cod sursa (job #3132436) | Cod sursa (job #1588622)
#include <fstream>
using namespace std;
ifstream fi ("rsir.in");
ofstream fo ("rsir.out");
int t[50000000],posi,k,i,a,b,x,y,z,m,n,fr[10000][10000],pos[10000][10000];
int main()
{
fi>>t[0]>>t[1]>>a>>b>>x>>y>>z>>m>>n;
for (i=2;i<=min(50000000,n);i++)
{
t[i]=a*t[i-2]+b*t[i-1]+x*t[i-2]+y*t[i-1]+z;
t[i]=t[i]%m;
fr[t[i-1]][t[i]]++;
if (fr[t[i-1]][t[i]]==1) pos[t[i-1]][t[i]]=i;
else {k=i-pos[t[i-1]][t[i]];posi=i-k;break;}
}
// for (i=0;i<=n;i++) fo<<t[i]<<' ';
n=(n-posi);
if (n%k!=0) n=n%k;
for (i=posi;i<=n;i++)
{
t[i]=a*t[i-2]+b*t[i-1]+x*t[i-2]+y*t[i-1]+z;
t[i]=t[i]%m;
}
fo<<'\n'<<t[n];
return 0;
}