Cod sursa(job #951195)

Utilizator predatorGigi Valoare predator Data 19 mai 2013 18:53:19
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
using namespace std;
ifstream f("koba.in");
ofstream g("koba.out");
int m[11][11][11],n,i,j,t1,t2,t3,v[1005];
long long S,P,per;
int main()
{
	f>>n>>t1>>t2>>t3;
	if(n<=3)
		switch(n)
		{
		case 1:g<<t1;return 0;
		case 2:g<<t2+t1;return 0;
		case 3:g<<t3+t2+t1;return 0;
		}
	n-=3;
	t1%=10;
	t2%=10;
	t3%=10;
	S=t1+t2+t3;
	for(i=1;i<=n;++i)
	{
		if(m[t1][t2][t3])
		{
			v[i]=(t3+t2*t1)%10;
			for(j=1;j<=m[t1][t2][t3];++j)
				S+=v[j];
			n-=m[t1][t2][t3];
			for(j=m[t1][t2][t3]+1;j<=i;++j)
				P+=v[j];
			per=i-m[t1][t2][t3];
			S+=n/per*P;
			n%=per;
			for(j=m[t1][t2][t3]+1;j<=m[t1][t2][t3]+n;++j)
				S+=v[j];
			g<<S;
			return 0;
		}
		m[t1][t2][t3]=i;
		v[i]=(t3+t2*t1)%10;
		t1=t2;
		t2=t3;
		t3=v[i];
	}
	for(i=1;i<=n;++i)
		S+=v[i];
	g<<S;
	return 0;
}