Cod sursa(job #2640743)

Utilizator andrei42Oandrei42O andrei42O Data 7 august 2020 20:35:52
Problema Cifra Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
int T, p[101], period, solve(), power(int, int);
string s;
void precalculate_periods();
int main()
{
    f >> T;
    precalculate_periods();
    for(; T; T--)
    {
        f >> s;
        g << solve() << '\n';
        s.clear();
    }
    return 0;
}
int power(int i, int e)
{
    if(e == 0)
        return 1;
    int ret = power(i, e / 2);
    ret = (ret * ret) % 10;
    if(e % 2)
        ret = (ret * i) % 10;
    return ret % 10;
}
void precalculate_periods()
{
    for(int i = 1; i <= 100; i++)
        p[i] = p[i - 1] + power(i, i);
}
int solve()
{
    int k = s.size(), x = 0;
    if(k <= 2)
        return p[s[k - 1] - '0'] % 10;
    for(int i = k - 2; i < k; i++)
        x = x * 10 + s[i] - '0';
    g << p[x] % 10 << '\n';
}