Cod sursa(job #475916)

Utilizator darrenRares Buhai darren Data 9 august 2010 11:40:53
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#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();
}