Cod sursa(job #2762015)

Utilizator UnknownPercentageBuca Mihnea-Vicentiu UnknownPercentage Data 5 iulie 2021 01:10:35
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <bits/stdc++.h>

using namespace std;

inline void Open(const string Name) {
    #ifndef ONLINE_JUDGE
        (void)!freopen((Name + ".in").c_str(), "r", stdin);
        (void)!freopen((Name + ".out").c_str(), "w", stdout);
    #endif
}

int dp[10][5];
int sum[101];

inline void Calcul() {
    for(int c = 0;c <= 9;c++) {
        dp[c][1] = c;
        for(int p = 2;p <= 4;p++)
            dp[c][p] = (dp[c][p - 1] * c) % 10;
    }
}

inline int getlastdigit(int x) {
    int P = x % 4;
    if(P == 0) P = 4;
    return dp[x % 10][P];
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    Open("cifra");

    Calcul();
    for(int i = 1;i <= 100;i++)
        sum[i] = (sum[i - 1] + getlastdigit(i)) % 10;

    int T;
    cin >> T;
    while(T--) {
        string nr;
        cin >> nr;

        int last2dig = 0, cnt = 0;
        while(!nr.empty()) {
            if(cnt == 0) last2dig = last2dig + (nr.back() - '0');
            if(cnt == 1) last2dig = last2dig + (nr.back() - '0') * 10;
            nr.pop_back();
            cnt++;
            if(cnt == 2) break;
        }

        cout << sum[last2dig] << "\n";
    }

    return 0;
}