Pagini recente » Cod sursa (job #2829506) | Cod sursa (job #2840683) | Cod sursa (job #2153713) | Cod sursa (job #84520) | Cod sursa (job #171968)
Cod sursa(job #171968)
#include <stdio.h>
int a[10][10][10],a1,a2,a3,a4,s=0,n,suma[300000];
int solutie(int x,int y){
return y-x+1;
}
int caut(){
int i;
s=a1+a2+a3;
suma[1]=a1;
suma[2]=suma[1]+a2;
suma[3]=suma[2]+a3;
a[a1][a2][a3]=1;
for(i=4;i<=n;i++){
a4=(a3+a2*a1)%10;
a1=a2;a2=a3;a3=a4;
if(a[a1][a2][a3]>0) return i-1;
a[a1][a2][a3]=i;
suma[i]=suma[i-1]+a4;
s+=a4;
}
return 0;
}
int main(){
int x,z,sum,y,i;
freopen("koba.in","r",stdin);
freopen("koba.out","w",stdout);
scanf("%d%d%d%d",&n,&a1,&a2,&a3);
a3%=10;a2%=10;a1%=10;
z=caut();
sum=suma[z]-suma[a[a1][a2][a3]-1];
n=n-z;
x=n/(z-a[a1][a2][a3]+1);
y=n%(z-a[a1][a2][a3]+1);
s+=x*sum;
s+=a4;
for(i=1;i<y;i++){
a4=(a3+a2*a1)%10;
a1=a2;a2=a3;a3=a4;
s+=a4;
}
printf("%d",s);
}