Pagini recente » Cod sursa (job #1032669) | Cod sursa (job #118966) | Profil yourlove | Cod sursa (job #774296) | Cod sursa (job #482844)
Cod sursa(job #482844)
#include<cstdio>
int ip,lp,s,n,x,y,z,q,a[1<<15],poz[1<<10];
int nb(int x,int y,int z)
{
return x*100+y*10+z;
}
void rasp()
{
if(n<=q)
{
for(int i=1;i<=n;i++)
s+=a[i];
return;
}
ip=nb(x,y,z);
int saux=0;
for(int i=poz[ip];i<=q-2;i++)
saux+=a[i];
for(int i=1;i<poz[ip];i++)
s+=a[i];
lp=q-1-poz[ip];
n-=(poz[ip]-1);
s+=(n/lp)*saux;
n-=(n/lp)*lp;
for(int i=poz[ip];i<=poz[ip]+n-1;i++)
s+=a[i];
}
void solve()
{
int zp;
q=0;
x%=10;
y%=10;
z%=10;
a[++q]=x;
a[++q]=y;
a[++q]=z;
poz[nb(x,y,z)]=1;
zp=(z+x*y)%10;
x=y;
y=z;
z=zp;
while(!poz[nb(x,y,z)])
{
a[++q]=z;
poz[nb(x,y,z)]=q-2;
zp=(z+x*y)%10;
x=y;
y=z;
z=zp;
}
rasp();
}
int main()
{
freopen("koba.in","r",stdin);
freopen("koba.out","w",stdout);
scanf("%d%d%d%d",&n,&x,&y,&z);
solve();
printf("%d",s);
return 0;
}