Cod sursa(job #1255187)

Utilizator patrutoiuandreipatrutoiu andrei patrutoiuandrei Data 4 noiembrie 2014 14:57:31
Problema Koba Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<fstream>
#define BMAX 1002
using namespace std;
ifstream fin("koba.in");
ofstream fout("koba.out");
int n;
int t[BMAX], poz[BMAX], sum[BMAX];

int main()
{

    int i=4, aux, nr, s;

    fin>>n>>t[1]>>t[2]>>t[3];

    t[1]%=10; t[2]%=10; t[3]%=10;
    sum[1]=t[1]; sum[2]=sum[1]+t[2]; sum[3]=sum[2]+t[3];

    aux=100*t[1]+10*t[2]+t[3];
    poz[aux]=3;

    for(i=4;; ++i)
    {
        t[i]=(t[i-1]+t[i-2]*t[i-3])%10;
        sum[i]=sum[i-1]+t[i];

        aux=100*t[i-2]+10*t[i-1]+t[i];

        if(poz[aux]==0)
            poz[aux]=i;
        else
        {
            nr=poz[aux];
            break;
        }
    }
    if(n<i)
        s=sum[n];

    else
    {
        //n-=nr;
        //s=sum[nr];
        s+=(sum[i]- sum[nr])*(n/(i-nr));
        s+=sum[nr+n%(i-nr)]-sum[nr];
    }

    fout<<s<<'\n';

    return 0;
}