Pagini recente » Cod sursa (job #2318789) | Cod sursa (job #1458382) | Cod sursa (job #2584387) | Cod sursa (job #739913) | Cod sursa (job #174661)
Cod sursa(job #174661)
#include<stdio.h>
int n,t[4],v[1010],sir[1010];
int marcat[1010];
int main()
{
freopen("koba.in","r",stdin);
freopen("koba.out","w",stdout);
int i,ok=1,abc,aux,x1,x2,per=-1,sper,s,p,k;
scanf("%d",&n);
scanf("%d%d%d",&t[1],&t[2],&t[3]);
t[1]%=10;
t[2]%=10;
t[3]%=10;
sir[1]=t[1];
sir[2]=t[2];
sir[3]=t[3];
marcat[t[1]*100+t[2]*10+t[3]]=3;
v[1]=t[1];
v[2]=v[1]+t[2];
v[3]=v[2]+t[3];
for(i=4; (ok)&&(i<=n); i++)
{
sir[i]=(sir[i-1]+sir[i-2]*sir[i-3])%10;
v[i]=v[i-1]+sir[i];
abc=sir[i-2]*100+sir[i-1]*10+sir[i];
if(marcat[abc]==0)
marcat[abc]=i;
else
{
ok=0;
x1=marcat[abc];
x2=i;
per=x2-x1;
sper=v[x2]-v[x1];
}
}
if(per==-1)
printf("%d\n",v[n]);
else
{
p=x1-1;
s=v[p];
k=n-p;
aux=k/per;
s+=sper*aux;
aux=k%per;
aux+=x1;
for(i=x1; i<aux; i++)
s+=sir[i];
printf("%d\n",s);
}
return 0;
}