Pagini recente » Cod sursa (job #2706033) | Cod sursa (job #2097221) | Rating CNTV DABELEA (CNTVDAB) | Cod sursa (job #1048877) | Cod sursa (job #485007)
Cod sursa(job #485007)
#include <fstream>
using namespace std;
const char InFile[]="koba.in";
const char OutFile[]="koba.out";
ifstream fin(InFile);
ofstream fout(OutFile);
int N,T1,T2,T3,sum;
int psum[1000],a[10][10][10],t=0,l=1,s;
int main()
{
fin>>N>>T1>>T2>>T3;
fin.close();
T1%=10;psum[1]=T1;
T2%=10;psum[2]=psum[1]+T2;
T3%=10;psum[3]=psum[2]+T3;
if(N>3)
{
a[T1][T2][T3]=3;
int last=-1;
for(register int i=4;i<=N;++i)
{
int T4=T3+T2*T1;
psum[i]=psum[i-1]+T4;
T4%=10;
T1=T2;
T2=T3;
T3=T4;
if(a[T1][T2][T3])
{
last=i;
break;
}
a[T1][T2][T3]=i;
}
if(last==-1)
{
last=a[T1][T2][T3];
}
sum=psum[a[T1][T2][T3]];
l=last-a[T1][T2][T3];
if(l)
{
N-=a[T1][T2][T3];
s=psum[last]-psum[a[T1][T2][T3]];
sum+=(N/l)*s;
sum+=psum[last-l+N%l]-psum[a[T1][T2][T3]];
}
}
else
{
sum=psum[N];
}
fout<<sum;
fout.close();
return 0;
}