Pagini recente » Cod sursa (job #518045) | Cod sursa (job #348751) | Cod sursa (job #1123009) | Cod sursa (job #56427) | Cod sursa (job #1292502)
#include <fstream>
using namespace std;
ifstream f("koba.in");
ofstream g("koba.out");
int n,i,x,t1,t2,t3,a[10001],fr[10001],ok,p1,p2,p[10001],k,nr,y;
long long s1,s2,s,v[10001];
int main()
{
f>>n;
s=0;
f>>x;
t1=x%10;
a[1]=t1;
v[1]=t1;
f>>x;
t2=x%10;
a[2]=t2;
v[2]=t1+t2;
f>>x;
t3=x%10;
a[3]=t3;
s=t1+t2+t3;
v[3]=s;
ok=0;
//fr[t1*100+t2*10+t3]=1;
p[t1]=1;
p[t2]=2;
p[t3]=3;
k=3;
for(i=4;i<=n&&ok==0;i++)
{
x=(t3+t1*t2)%10;
y=x+a[i-1]*10+a[i-2]*100;
if(fr[y]==0)
{
k++;
a[k]=x;
p[y]=i;
fr[y]++;
v[k]=s+x;
}
else
{
p2=i-3;
p1=p[y]-2;
s1=v[p2]-v[p1-1];
s=v[p1-1];
nr=p2-p1+1;
ok=1;
break;
}
t1=t2;
t2=t3;
t3=x;
s=s+x;
}
if(ok==0)
{
g<<s;
return 0;
}
int c=(n-p1+1)/nr;
int r=(n-p1+1)%nr;
s=s+(c)*s1;
if(r!=0)
s=s+v[p1+r-1]-v[p1-1];
g<<s;
return 0;
}