Pagini recente » Cod sursa (job #1421781) | Cod sursa (job #781862) | Cod sursa (job #1960395) | Cod sursa (job #2158073) | Cod sursa (job #2091358)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("koba.in");
ofstream fout("koba.out");
int f;
int v[1000];
int s[1000];
inline int num(int a,int b,int c)
{
return a*100+b*10+c;
}
int main()
{
int a,b,c,n,i,d,ans=0,nrec,rec;
fin>>n>>a>>b>>c;
a%=10,b%=10,c%=10;
v[num(a,b,c)]=3;
if(n==1)
fout<<a;
if(n==2)
fout<<a+b;
if(n==3)
fout<<a+b+c;
if(n<=3)
return 0;
ans = a+b+c;
for(i=4; i<=n; ++i)
{
d = (c+b*a)%10;
ans+=d;
if(v[num(b,c,d)])
{
rec = i-v[num(b,c,d)]+1;
n-=i;
nrec = ans - s[num(b,c,d)];
ans+=(n/rec)*nrec;
n%=rec;
break;
}
else
v[num(b,c,d)]=i,s[num(b,c,d)]=ans;
a=b,b=c,c=d;
}
a=b,b=c,c=d;
for(i=1 ; i<=n; ++i)
{
d = (c+b*a)%10;
ans+=d;
a=b,b=c,c=d;
}
fout<<ans;
}