Pagini recente » Cod sursa (job #2534331) | Cod sursa (job #1554837) | Cod sursa (job #1888664) | Cod sursa (job #1998157) | Cod sursa (job #779741)
Cod sursa(job #779741)
#include<stdio.h>
FILE *f = fopen("koba.in","r");
FILE *g = fopen("koba.out","w");
#define MaxT 1100
int N,T1,T2,T3,Sol;
int A[MaxT],Best[MaxT];
void citire(void)
{
fscanf(f,"%d %d %d %d\n",&N,&T1,&T2,&T3);
}
void Rezolvare(void)
{
int aux,i,nr;
T1 %= 10; T2 %= 10; T3 %= 10;
Sol += T1 + T2 + T3;
A[T3] = 1; Best[T3] = T3;
A[T2*10+T3] = 2; Best[T2*10+T3] = T2+T3;
A[T1*100+T2*10+T3] = 3;
Best[T1*100+T2*10+T3] = Sol;
for(i=4;i<=N;i++)
{
aux = (T3 + T2*T1)%10,T1 = T2,T2 = T3,T3 = aux,Sol += aux;
nr = T1*100+T2*10+T3;
if(A[nr])
break;
Best[nr] = Sol;
A[nr] = i;
}
N -= i;
Sol += (N/(i-A[nr]))*(Sol-Best[nr]);
N %= (i-A[nr]);
for(i=1;i<=N;i++)
aux = (T3 + T2*T1)%10,T1 = T2,T2 = T3,T3 = aux,Sol += aux;
}
int main()
{
citire();
Rezolvare();
fprintf(g,"%d\n",Sol);
}