Pagini recente » Cod sursa (job #2190776) | Cod sursa (job #62023) | Cod sursa (job #2494342) | Cod sursa (job #2793335) | Cod sursa (job #3259353)
#include <fstream>
using namespace std;
ifstream cin("koba.in");
ofstream cout("koba.out");
long long int n,a,b,c,i,Sc,Sp,L,y,sum;
int s[10001];
pair <bool, int> f[10001];
int main()
{
cin>>n>>c>>b>>a;
a=a%10;
b=b%10;
c=c%10;
if(n==1)
{
cout<<c;
return 0;
}
s[1]=c;
if(n==2)
{
cout<<c+b;
return 0;
}
s[2]=b+c;
if(n==3)
{
cout<<a+b+c;
return 0;
}
s[3]=a+b+c;
for(i=4;i<=n;i++)
{
int x=(a+b*c)%10;
c=b;
b=a;
a=x;
y=c*100+b*10+a;
s[i]=s[i-1]+x;
if(f[y].first==0)
{
f[y].first=1;
f[y].second=i-2;
}
else if(f[y].first==1)
{
Sc=s[f[y].second];
Sp=s[i-2]-s[f[y].second];
L=(i-2)-f[y].second;
break;
}
}
if(L!=0)
{
sum=Sc+Sp*((n-f[y].second+1)/L)+(s[f[y].second+(n-f[y].second)%L]-s[f[y].second]);
}
else
{
sum=s[n];
}
cout<<sum;
return 0;
}