Cod sursa(job #1867251)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 3 februarie 2017 21:35:33
Problema Koba Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>

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

int main(){
    fin>>n>>t1>>t2>>t3;
    t1%=10;
    t2%=10;
    t3%=10;
    aux=t1*100+t2*10+t3;
    k=2;
    f[aux]=++k;
    z[k]=aux;
    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;
            z[k]=aux;
        }
        else
        {
            n-=(f[aux]-1);
            k-=(f[aux]-1);
            sum+=(n/k)*(v[k+f[aux]-1]-v[f[aux]-1]);
            sum+=v[f[aux]-1+n%k]-v[f[aux-1]];
            break;
        }
        if(k==n)
        {
            sum=v[k];
            break;
        }
    }
    fout<<sum;
    fin.close();
    fout.close();
    return 0;
}