Pagini recente » Cod sursa (job #803223) | Cod sursa (job #1815703) | Cod sursa (job #1379184) | Cod sursa (job #248438) | Cod sursa (job #2979507)
#include <fstream>
using namespace std;
ifstream fin ("koba.in");
ofstream fout ("koba.out");
int n,tt1,tt2,s,nr,su,nrc,suma,tt3,t1,vv[1001],t2,t3,ii,i,poz,m,c[1001],v[1001];
int main()
{
fin>>n>>tt1>>tt2>>tt3;
tt1=tt1%10;
tt2=tt2%10;
tt3=tt3%10;
t1=tt1;
t2=tt2;
t3=tt3;
for (i=4; i<=1001; i++)
{
nr=t1*100+t2*10+t3;
if (v[nr]!=0)
{
ii=i;
poz=v[nr];
break;
}
v[nr]=i;
nrc=t3+t2*t1;
t1=t2;
t2=t3;
t3=nrc%10;
}
t1=tt1;
t2=tt2;
t3=tt3;
s=s+t1+t2+t3;
c[1]=t1;
c[2]=t2;
c[3]=t3;
for (i=4; i<poz; i++)
{
s=s+(t3+t2*t1)%10;
nrc=(t3+t2*t1)%10;
c[i]=c[i-1]+nrc;
t1=t2;
t2=t3;
t3=nrc;
}
for (i=poz; i<ii; i++)
{
su=su+(t3+t2*t1)%10;
nrc=(t3+t2*t1)%10;
vv[i-poz+1]=vv[i-poz]+nrc;
t1=t2;
t2=t3;
t3=nrc;
}
m=n-poz+1;
if (m<0)
{
fout<<c[m];
return 0;
}
suma=s+(su*(m/(ii-poz))+vv[m%(ii-poz)]);
fout<<suma;
return 0;
}