Pagini recente » Cod sursa (job #2349181) | Cod sursa (job #2357426) | Cod sursa (job #2922193) | Cod sursa (job #2899939) | Cod sursa (job #139223)
Cod sursa(job #139223)
#include <cstdio>
int N;
int T[1024];
int S[1024];
int A[10][10][10];
int main() {
freopen("koba.in", "r", stdin);
freopen("koba.out", "w", stdout);
scanf("%d %d %d %d", &N, &T[1], &T[2], &T[3]);
T[1] %= 10; T[2] %= 10; T[3] %= 10;
S[1] = T[1];
S[2] = S[1] + T[2];
S[3] = S[2] + T[3];
A[T[3]][T[2]][T[1]] = 3;
int found = 0, i = 3;
while (!found) {
++i;
T[i] = (T[i-1] + T[i-2] * T[i-3]) % 10;
S[i] = S[i-1] + T[i];
if (A[T[i]][T[i-1]][T[i-2]])
found = A[T[i]][T[i-1]][T[i-2]];
A[T[i]][T[i-1]][T[i-2]] = i;
}
if (N <= i) printf("%d\n", S[N]);
else {
int ret = S[found];
N -= found;
ret += N/(i-found) * (S[i]-S[found]);
ret += S[found + N%(i-found)] - S[found];
printf("%d\n", ret);
}
}