Cod sursa(job #2327509)

Utilizator MAXIMILLIANMUSOHYEAHYEAH MAXIMILLIANMUS Data 24 ianuarie 2019 19:17:04
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("cifra.in");
ofstream cout("cifra.out");

int pw(int b, int e) {
    int ans(1);
    if (e == 0)
        e = 4;
    while (e) {
        ans = ans * b % 10;
        e--;
    }
    return ans;
}

int main()
{
    int q;
    string n;
    cin >> q;
    while (q--) {
        cin >> n;
        int ans(0);
        reverse(n.begin(), n.end());
        if (n.size() >= 2) {
            for (int j = 1; j <= n[0] - '0'; ++j) {///analizam ultima grupa
                ans += pw(j % 10, (j + (n[1] - '0') % 2 * 2) % 4);
                if (ans >= 10)
                    ans -= 10;
            }
        }
        else {
            for (int j = 1; j <= n[0] - '0'; ++j) {
                ans += pw(j % 10, j % 4);
                if (ans >= 10)
                    ans -= 10;
            }
        }
        if (n.size() >= 2)
            cout << (ans + 7 * (n[1] - '0')) % 10 << '\n';
        else
            cout << ans << '\n';
    }
    return 0;
}