Cod sursa(job #2740494)

Utilizator DragosC1Dragos DragosC1 Data 13 aprilie 2021 13:00:34
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;

char s[100001];
int rez;
int v[100001];

ifstream f;
ofstream g;

const int MOD2 = 10;

int exp(int a, int b) {
    int P = 1;
    while (b) {
        if (b % 2 != 0) 
            P = (P * a) % MOD2;
        a = (a * a) % MOD2;
        b /= 2;
    }
    return P;
}

void precalc() {
    int i, sum = 0;
    for (i = 1; i <= 100; i++) {
        sum = (sum + exp(i, i)) % MOD2;
        v[i] = sum;
    }
}

void solve() {
    int i, n, nr = 0;
    f >> s;
    n = strlen(s);
    for (i = max(0, n - 2); i < n; i++)
        nr = nr * 10 + (s[i] - 48);
    g << v[nr] << '\n';
}


int main() {
    int t;
    precalc();
    f.open("cifra.in");
    g.open("cifra.out");
    f >> t;
    while (t--)
        solve();
    f.close();
    g.close();
    return 0;
}