Cod sursa(job #1348625)

Utilizator tudorv96Tudor Varan tudorv96 Data 19 februarie 2015 19:55:07
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <iostream>
using namespace std;

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

int p[1000], sp[1000], n, a, b, c, pr, st, step = 4;

int main() {
    fin >> n >> a >> b >> c;
    a %= 10;
    b %= 10;
    c %= 10;
    sp[1] = a;
    sp[2] = a + b;
    sp[3] = a + b + c;
    for(; ;step++) {
        int x = a * 100 + b * 10 + c, d = (c + a * b) % 10;
        sp[step] = sp[step - 1] + d;
        if (!p[x])
            p[x] = step;
        else {
            st = p[x];
            pr = step - p[x];
            //cout << st << " " << pr << "\n";
            break;
        }
        a = b;
        b = c;
        c = d;
    }
    //cout << sp[st-1] << " " << sp[st] << " " << sp[st + pr];
    long long sol = 1LL * sp[st] + (n - st) / pr * (sp[st + pr] - sp[st]) + sp[(n - st) % pr + st] - sp[st];
    fout << sol;
}