Pagini recente » Cod sursa (job #387834) | Cod sursa (job #995067) | Cod sursa (job #2820852) | Cod sursa (job #1567471) | Cod sursa (job #172264)
Cod sursa(job #172264)
#include <stdio.h>
int a[12][12][12],m,a1,a2,a3,s=0,poz,c1,c2,c3,n,v[100000];
int caut(){
int i,a4;
s=a1+a2+a3;
a[a1][a2][a3]=1;
v[0]=3;
v[1]=a1;v[2]=a2;v[3]=a3;
for(i=2;i<=n;i++){
a4=(a3+a1*a2)%10;
a1=a2;a2=a3;a3=a4;
if(a[a1][a2][a3]!=0) {
s-=a1+a2;
poz=a[a1][a2][a3]-1;
v[0]-=2;
return i-1;
}
v[++v[0]]=a3;
a[a1][a2][a3]=i;
s+=a3;
}
return 0;
}
int stg(){
int i,sum=c1+c2+c3,x;
if(poz==0) return 0;
if(poz==1) return c1;
if(poz==2) return c1+c2;
if(poz==3) return c1+c2+c3;
for(i=4;i<=poz;i++){
x=(c3+c1*c2)%10;
c1=c2;c2=c3;c3=x;
sum+=c3;
}
return sum;
}
int main(){
int i,fin,sum,a4;
freopen("koba.in","r",stdin);
freopen("koba.out","w",stdout);
scanf("%d%d%d%d",&n,&a1,&a2,&a3);
a1%=10;a2%=10;a3%=10;
c1=a1;c2=a2;c3=a3;
fin=caut();
sum=s-stg();
n-=fin;
s+=sum*(n/(fin-poz));
a3=v[v[0]];a2=v[v[0]-1];a1=v[v[0]-2];
for(i=1;i<=n%(fin-poz);i++){
a4=(a3+a1*a2)%10;
a1=a2;a2=a3;a3=a4;
s+=a3;
}
printf("%d",s);
}