Pagini recente » Cod sursa (job #199113) | Cod sursa (job #1787615) | Cod sursa (job #1695987) | Cod sursa (job #1588166) | Cod sursa (job #142695)
Cod sursa(job #142695)
#include <stdio.h>
#define input "koba.in"
#define output "koba.out"
int v[1001];
int t1,t2,t3,i,cs,cd;
long n;
long sol;
void citire()
{
FILE *fin;
fin=fopen(input,"r");
fscanf(fin,"%ld %d %d %d",&n,&t1,&t2,&t3);
fclose(fin);
}
int cauta(int n)
{
int i;
for (i=1;i<n-2;i++)
if ((v[i]==v[n-2])&&(v[i+1]==v[n-1])&&(v[i+2]==v[n]))
return i;
return 0;
}
void solve()
{
long nr,cate,rest;
v[1]=t1%10; v[2]=t2%10; v[3]=t3%10;
for (i=4;;i++)
{
v[i]=(v[i-1]+v[i-2]*v[i-3])%10;
cs=cauta(i);
if (cs) break;
}
cd=i-3;
sol=0;
if (cd<=n)
{
for (i=cs;i<=cd;i++) sol+=v[i];
cate=(n-cs+1)/(cd-cs+1);
rest=(n-cs+1)%(cd-cs+1);
sol*=cate;
for (i=1;i<cs;i++) sol+=v[i];
for (i=cs;i<=cs+rest-1;i++) sol+=v[i];
}
else
for (i=1;i<=n;i++) sol+=v[i];
}
void afisare()
{
FILE *fout;
fout=fopen(output,"w");
fprintf(fout,"%ld",sol);
fclose(fout);
}
int main()
{
citire();
solve();
afisare();
return 0;
}