Pagini recente » Cod sursa (job #2661152) | Cod sursa (job #2932202) | Cod sursa (job #2296457) | Cod sursa (job #1138959) | Cod sursa (job #1973156)
#include <cstdio>
using namespace std;
int f[1001],term[1001];
int main()
{
FILE *fin=fopen ("koba.in","r");
FILE *fout=fopen ("koba.out","w");
int n,a,b,c,i,aux,p;
long long sol;
fscanf (fin,"%d%d%d%d",&n,&a,&b,&c);
a%=10;
b%=10;
c%=10;
term[1]=a;
term[2]=b+a;
term[3]=a+b+c;
if (n<4){
fprintf (fout,"%d",term[n]);
return 0;
}
for (i=4;i<=n;i++){
//printf ("%d ",a*100+b*10+c);
aux=(c+a*b)%10;
a=b;
b=c;
c=aux;
term[i]=c+term[i-1];
if (f[a*100+b*10+c]==0)
f[a*100+b*10+c]=i;
else break;
}
if (i>n){
fprintf (fout,"%d",term[n]);
return 0;
}
p=f[a*100+b*10+c];
// sunt p termeni pana la ciclu
sol=(long long)term[p] + (long long)(term[i]-term[p])*((n-p)/(i-p)) + (long long)term[p+((n-p)%(i-p))]-(long long)term[p];
fprintf (fout,"%lld",sol);
return 0;
}