Pagini recente » Cod sursa (job #2401493) | Cod sursa (job #84675) | Cod sursa (job #2821165) | Cod sursa (job #3209909) | Cod sursa (job #138562)
Cod sursa(job #138562)
#include <stdio.h>
long n,i,t1,t2,t3,x,y,z,aux,a[1003],p,q,s,uc,ok,poz[1003];
bool mark[1003];
int main(){
freopen("koba.in","r",stdin);
freopen("koba.out","w",stdout);
scanf("%ld %ld %ld %ld",&n,&t1,&t2,&t3);
x=t1=t1%10;
y=t2=t2%10;
z=t3=t3%10;
a[1]=x;a[2]=y;a[3]=z;
mark[100*x+10*y+z]=1;
poz[100*x+10*y+z]=1;
q=1;
ok=1;
while (ok){
aux=(z+x*y)%10;
x=y;
y=z;
z=aux;
if (mark[x*100+y*10+z]){ok=0;}
else {mark[x*100+y*10+z]=1;
poz[x*100+y*10+z]=q+1;
}
q++;
a[q+2]=aux;
}
//for (i=1;i<=q+2;i++)
// printf("%ld ",a[i]);
//printf("\n");
q--;
p=poz[x*100+y*10+z];
//printf("%ld\n",p);
for (i=1;i<p&&i<=n;i++)
uc+=a[i];
//printf("%ld\n",uc);
n-=p-1;
for (i=p;i<=q;i++)s+=a[i];
//printf("%ld\n",s);
if (n>0)
uc+=(n/(q-p+1))*s;
//printf("%ld\n",uc);
if (n>0)
for (i=n%(q-p+1);i;i--)
uc+=a[i+p-1];
printf("%ld\n",uc);
return 0;
}