Cod sursa(job #520919)

Utilizator bora_marianBora marian bora_marian Data 10 ianuarie 2011 19:28:52
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
using namespace std;
int v[1005],a,b,c;
int n,nr,perioada,zero,poz[1005];
long long suma,rez,nn;
int main()
{
	ifstream fin("koba.in");
	ofstream fout("koba.out");
	fin>>n;
	nn=n;
	fin>>c>>b>>a;
	nr=(a%10)*100+(b%10)*10+c%10;
	poz[nr]=3;
	rez=a%10+b%10+c%10;
	v[nr]=rez;
	int i;
	for(i=4;i<=n && perioada==0;i++)
	{
		int t=a+b*c;
		rez+=t%10;
		c=b;
		b=a;
		a=t%10;
		nr=(a%10)*100+(b%10)*10+c%10;
		if(poz[nr]==0)
		{  
		  poz[nr]=i;
		  v[nr]=rez;
	     }
	     else
	     {
			 perioada=i-poz[nr];
			 n-=i;
			 long long sum=rez-v[nr];
			 int asa=n/perioada;
			 rez+=asa*sum;
			 i+=asa*perioada;
			 for(int j=i+1;j<=nn;j++)
			 {    
               t=a+b*c;
		       c=b;
		       b=a;
		       a=t%10;
		       rez+=a;
		     } 
		 }
	 }
	fout<<rez;	   
    return 0;
}