Pagini recente » Cod sursa (job #1456448) | Cod sursa (job #1549795) | Cod sursa (job #929937) | Cod sursa (job #2211365) | Cod sursa (job #1688571)
#include <bits/stdc++.h>
#define maxN 10002
#define maxD 11
using namespace std;
using namespace std;
int w[maxD][maxD][maxD], sp[maxN], ans;
int n, t1, t2, t3;
void read()
{
freopen("koba.in", "r", stdin);
scanf("%d %d %d %d", &n, &t1, &t2, &t3);
t1 %= 10; t2 %= 10; t3 %= 10;
}
void solve()
{
int i, p = 0, q = 0;
sp[1] = t1;
sp[2] = t1 + t2;
for (i = 3; i <= n; ++ i)
if (!w[t1][t2][t3])
{
int cp = t3;
w[t1][t2][t3] = i;
sp[i] = sp[i - 1] + t3;
t3 = (t3 + t1 * t2) % 10;
t1 = t2;
t2 = cp;
}else
{
sp[i] = sp[i - 1] + t3;
p = i - w[t1][t2][t3];
q = w[t1][t2][t3];
//w[t1][t2][t3] = i;
break;
}
if (!p)
ans = sp[n];
else
ans = sp[q] + (sp[p + q] - sp[q]) * ((n - q) / p) + sp[q + (n - q) % p] - sp[q];
}
void write()
{
freopen("koba.out", "w", stdout);
printf("%d\n", ans);
}
int main()
{
read();
solve();
write();
return 0;
}