Cod sursa(job #2162579)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 12 martie 2018 11:59:56
Problema Koba Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;
ifstream fin ("koba.in");
ofstream fout("koba.out");
long long n, t1, t2, t3, aux, k, f[1010], v[1010],t, sum,i;

int main(){
    fin>>n>>t1>>t2>>t3;
    t1%=10;
    t2%=10;
    t3%=10;
    if(n==2)
        fout<<(t2+t1)%10;
    if(n==1)
        fout<<t1;
    aux=t1*100+t2*10+t3;
    k=2;
    f[aux]=++k;
    v[k]=t3+t2+t1;
    while(true)
    {
        t=t3;
        t3=(t3+t2*t1)%10;
        t1=t2;
        t2=t;
        aux=t1*100+t2*10+t3;
        if(f[aux]==0){
            f[aux]=++k;
            v[k]=v[k-1]+t3;
        }
        else
        {
            n-=(f[aux]-1);
            k-=(f[aux]-1);
            sum+=1ll*(1ll*(n/k)*(v[k+f[aux]-1]-v[f[aux]-1]));
            sum+=1ll*(v[f[aux]-1+n%k]-v[f[aux]-1]);
            sum+=1ll*v[f[aux]-1];
            break;
        }
        if(k==n)
        {
            sum=v[k];
            break;
        }
    }
    fout<<sum;
    fin.close();
    fout.close();
    return 0;
}