Pagini recente » Cod sursa (job #651539) | Cod sursa (job #1595680) | Cod sursa (job #377106) | Cod sursa (job #3040101) | Cod sursa (job #1866917)
#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,nr,s,pas,i,aux;
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;
}
pas=2;
while (f[a*100+b*10+c]==0){
//printf ("%d ",a*100+b*10+c);
pas++;
f[a*100+b*10+c]=pas;
term[pas]=c+term[pas-1];
aux=(c+a*b)%10;
a=b;
b=c;
c=aux;
}
nr=a*100+b*10+c;
sol=term[f[nr]-3];
s=term[pas]-term[f[nr]-1];
n=n-f[nr]+3;
sol=sol+(long long)s*(n/(pas-f[nr]+1));
n%=(pas-f[nr]+1);
if (n>=1)
sol+=nr%100;
if (n>=2)
sol+=(nr/10)%10;
for (i=0;i<1000;i++){
if (f[i]>=f[nr] && f[i]<=f[nr]+n-3)
sol=sol+i%10;
}
fprintf (fout,"%lld",sol);
return 0;
}