Pagini recente » Cod sursa (job #1007749) | Cod sursa (job #2415505) | Cod sursa (job #148157) | Cod sursa (job #2115080) | Cod sursa (job #139255)
Cod sursa(job #139255)
#include <stdio.h>
int N, T1, T2, T3, T4, x[1024], cnt;
short int D[10][10][10], perioada, rest;
int main(void)
{
int i, j;
freopen("koba.in", "r", stdin);
freopen("koba.out", "w", stdout);
scanf("%d %d %d %d", &N, &T1, &T2, &T3);
T1 %= 10; T2 %= 10; T3 %= 10;
x[1] = T1; x[2] = T2; x[3] = T3;
for (D[T1][T2][T3] = 1, i = 2; ; ++i)
{
T4 = (T3 + T1 * T2) % 10;
T1 = T2; T2 = T3; T3 = T4;
x[i+2] = T3;
if (D[T1][T2][T3])
break;
D[T1][T2][T3] = i;
}
perioada = i-D[T1][T2][T3];
rest = D[T1][T2][T3];
if (N <= rest)
for (i = 1; i <= N; i++)
cnt += x[i];
else
{
for (i = 1; i < rest; i++)
cnt += x[i];
for (j = 0, i = rest; i < rest+perioada; i++)
j += x[i];
cnt += j * ((N-rest+1) / perioada);
for (i = rest + perioada * ((N-rest+1) / perioada), j = rest; i <= N; i++, j++)
cnt += x[j];
}
printf("%d\n", cnt);
return 0;
}