Cod sursa(job #2624383)

Utilizator Moise_AndreiMoise Andrei Moise_Andrei Data 4 iunie 2020 19:40:11
Problema Koba Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("koba.in");
ofstream out("koba.out");
int v[1000005], fr[1005];
int main()
{
    int n, a, b, c;
    in >> n >> a >> b >> c;
    a %= 10, b %= 10, c %= 10;
    v[1] = a;
    v[2] = v[1] + b;
    v[3] = v[2] + c;
    fr[a * 100 + b * 10 + c] = 1;
    int p1 = 0, p = 0;
    for(int i = 4; i <= n; i ++)
    {
        int z = (c + a * b) % 10;
        a = b;
        b = c;
        c = z;
        v[i] = v[i - 1] + c;
        if(fr[a * 100 + b * 10 + c] != 0)
        {
            p1 = fr[a * 100 + b * 10 + c];
            p = i - 3;
            break;
        }
        else
            fr[a * 100 + b * 10 + c] = i - 2;
    }
    int x = p - p1 + 1;
    out << (v[p] - v[p1 - 1]) * ((n - p) / x) + v[p1 + (n - p) % x - 1] - v[p1 - 1] + v[p];
    return 0;
}