Pagini recente » Cod sursa (job #2328572) | Cod sursa (job #1484321) | Cod sursa (job #612670) | Cod sursa (job #1454360) | Cod sursa (job #137497)
Cod sursa(job #137497)
#include <stdio.h>
int n,x,y,z,q,a[1010],e,s,sum,x1,y1,z1;
int main()
{
freopen("koba.in","r",stdin);
freopen("koba.out","w",stdout);
scanf("%d%d%d%d",&n,&x,&y,&z);
int i,j;
x%=10;
y%=10;
z%=10;
a[(x*10+y)*10+z]=1;
s=x+y+z;
for (i=4; i<=n; ++i)
{
q=(z+x*y)%10;
x=y;
y=z;
z=q;
s+=z;
e=(x*10+y)*10+z;
if (a[e]>0) break;
a[e]=i-2;
}
if (i<n)
{
i=i-3;
s=s-(x+y+z);
sum=x+y+z;
x1=x;
y1=y;
z1=z;
for (j=a[e]+3; j<=i; ++j)
{
q=(z+x*y)%10;
x=y;
y=z;
z=q;
sum+=z;
}
s=s+((n-i)/(i-a[e]+1))*sum;
x=x1;
y=y1;
z=z1;
n=(n-i)%(i-a[e]+1);
if (n==1) s+=x;
if (n==2) s+=x+y;
if (n==3) s+=x+y+z;
if (n>3)
{
s+=x+y+z;
for (j=4; j<=n; ++j)
{
q=(z+x*y)%10;
x=y;
y=z;
z=q;
s+=z;
}
}
}
printf("%d",s);
return 0;
}