Pagini recente » Cod sursa (job #1523070) | Cod sursa (job #1816394) | Cod sursa (job #143761) | Cod sursa (job #3229490) | Cod sursa (job #475916)
Cod sursa(job #475916)
#include <fstream>
using namespace std;
int n, t1, t2, t3;
int tmp, s[1000000], p[10][10][10];
int main()
{
ifstream fin("koba.in");
ofstream fout("koba.out");
fin >> n >> t1 >> t2 >> t3;
t1 %= 10, t2 %= 10, t3 %= 10;
s[1] = t1, s[2] = s[1] + t2, s[3] = s[2] + t3;
int a1 = t1, a2 = t2, a3 = t3, aux;
p[a1][a2][a3] = 3;
int i;
for (i = 4; i <= n; ++i)
{
aux = (a3 + a1 * a2) % 10;
a1 = a2, a2 = a3, a3 = aux;
s[i] = s[i - 1] + a3;
if (p[a1][a2][a3] == 0) p[a1][a2][a3] = i;
else break;
}
int sum = s[p[a1][a2][a3]];
int rep = i - p[a1][a2][a3], srep = s[i] - s[p[a1][a2][a3]];
n -= p[a1][a2][a3];
sum += (n / rep) * srep;
sum += s[i - rep + n % rep] - s[p[a1][a2][a3]];
fout << sum;
fin.close();
fout.close();
}