Pagini recente » Cod sursa (job #487556) | Cod sursa (job #879596) | Cod sursa (job #3263445) | Cod sursa (job #1875840) | Cod sursa (job #485936)
Cod sursa(job #485936)
#include<cstdio>
const int N=15;
int n,t1,t2,t3,t4,s,last=-1,l,suma;
int a[N][N][N],sum[1000];
void rez()
{
scanf("%d%d%d%d",&n,&t1,&t2,&t3);
t1%=10;
t2%=10;
t3%=10;
a[t1][t2][t3]=3;
sum[1]=t1;
sum[2]=t1+t2;
sum[3]=t1+t2+t3;
if (n<4)
{
printf("%d\n",sum[n]);
return;
}
s=t1+t2+t3;
for (int i=4;i<=n;++i)
{
t4=t3+t2*t1;
t4%=10;
t1=t2;
t2=t3;
t3=t4;
sum[i]=sum[i-1]+t3;
if (a[t1][t2][t3])
{
last=i;
break;
}
a[t1][t2][t3]=i;
}
if (last==-1)
last=a[t1][t2][t3];
suma=sum[a[t1][t2][t3]];
l=last-a[t1][t2][t3];
if (l)
{
n-=a[t1][t2][t3];
s=sum[last]-sum[a[t1][t2][t3]];
suma+=(n/l)*s;
suma+=sum[last-l+n%l]-sum[a[t1][t2][t3]];
}
printf("%d\n",suma);
}
int main()
{
freopen("koba.in","r",stdin);
freopen("koba.out","w",stdout);
rez();
return 0;
}