Nu aveti permisiuni pentru a descarca fisierul grader_test2.ok
Cod sursa(job #1588622)
| Utilizator | Data | 3 februarie 2016 12:57:05 | |
|---|---|---|---|
| Problema | Rsir | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.7 kb |
#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;
}
