Cod sursa(job #943238)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 24 aprilie 2013 18:04:50
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;

ifstream fin("koba.in"); ofstream fout("koba.out");

int t1, t2, t3, t4, n, s, p, no, pd, sd, nrp, v[1005], poz[1005], sum[1005];

int main()
{
    fin >> n >> t1 >> t2 >> t3;

    t1 %= 10;
    t2 %= 10;
    t3 %= 10;
    s = t1 + t2 + t3;
    p = t1 * 100 + t2 * 10 + t3;
    v[p] = 1;
    sum[p] = s;
    poz[p] = 3;

    for(int i = 4; i <= n; ++i)
    {
        t4 = (t3 + t1 * t2) % 10;
        t1 = t2;
        t2 = t3;
        t3 = t4;
        s += t3;
        p = t1 * 100 + t2 * 10 + t3;

        if(no == 1)
            continue;

        if(v[p]==0)
        {
            v[p] = 1;
            sum[p] = s;
            poz[p] = i;
        }

        else
        {
            sd = s - sum[p];
            pd = i - poz[p];
            nrp = (n - i) / pd;
            s += nrp *sd;
            i += nrp * pd;
            no = 1;
        }
    }

    fout << s << '\n';

    fin.close(); fout.close();
    return 0;
}