Cod sursa(job #1653375)

Utilizator LegionHagiu Stefan Legion Data 15 martie 2016 22:18:52
Problema Koba Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
pair<int,int> m[10][10][10];
int main()
{
    ifstream in("koba.in");
    ofstream out("koba.out");
    int n,a,b,c,t,suma=0,grad=3,i;
    in>>n;
    in>>a;
    a%=10;
    in>>b;
    b%=10;
    in>>c;
    c%=10;
    suma=a+b+c;
    m[a][b][c].first=suma;
    m[a][b][c].second=3;
    n-=3;
    while (true)
	{
		t=c;
		c=c+a*b;
		c%=10;
		suma+=c;
		grad++;
		a=b;
		b=t;
		if (m[a][b][c].first==0)
		{
			m[a][b][c].first=suma;
	     	m[a][b][c].second=grad;
	     	n--;
		}
		else
		{
			suma+=n/(grad-m[a][b][c].second)*(suma-m[a][b][c].first);
			n%=(grad-m[a][b][c].second);
			break;
		}
	}
	for (i=1;i<n;i++)
	{
		t=c;
		c=c+a*b;
		c%=10;
		suma+=c;
		a=b;
		b=t;
	}
	out<<suma;
}