Pagini recente » Cod sursa (job #2784449) | Cod sursa (job #3199050) | Cod sursa (job #1754025) | Cod sursa (job #2822219) | Cod sursa (job #419079)
Cod sursa(job #419079)
#include <cstdio>
#define file_in "koba.in"
#define file_out "koba.out"
#define Max 200
long long n,t1,t2,t3,i,s,r,j,poz1,poz2,t11,t22,t33,r1,r2,r3,r11,r22,r33,v[10000],nr,suma;
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%lld %lld %lld %lld", &n, &t1, &t2, &t3);
t1%=10;
t2%=10;
t3%=10;
s=t1+t2+t3;
v[1]=t1;
v[2]=t2;
v[3]=t3;
nr=3;
for (i=4;i<=Max;++i)
{
int ok=1;
r1=(t1*t2+t3)%10;
//printf("%d\n", r1);
v[i]=r1;
s+=r1;
t1=t2;
t2=t3;
t3=r1;
}
/* poz1=0;
for (i=Max;i>=1 && !poz1;--i)
{
r1=v[i];
r2=v[i-1];
r3=v[i-2];
for (j=Max;j>=3 && !poz1;--j)
{
r11=v[j];
r22=v[j-1];
r33=v[j-2];
if (r1==r11 && r2==r22 && r3==r33)
{
poz1=i;
poz2=j;
}
}
}*/
r1=v[Max];
r2=v[Max-1];
r3=v[Max-2];
for (j=Max-1;j>=3 && !poz2;--j)
{
r11=v[j];
r22=v[j-1];
r33=v[j-2];
if (r1==r11 && r2==r22 && r3==r33)
{
poz2=j;
//poz2=j;
}
}
//poz2--;
int rep=Max-poz2;
suma=0;
for (i=Max-rep+1;i<=Max;++i)
suma+=+v[i];
n=n-Max;
int imp;
if (n%rep==0)
imp=n/rep;
else
imp=n/rep-1;
s+=imp*suma;
n-=imp*rep;
for (i=1;i<=n;++i)
s+=v[Max-rep+i-2];
printf("%lld\n", s);
fclose(stdin);
fclose(stdout);
return 0;
}