Cod sursa(job #2827808)

Utilizator SeracovanuEdwardSeracovanu Edward SeracovanuEdward Data 6 ianuarie 2022 13:50:04
Problema Cifra Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>
#define len(s) int(s.size())
using namespace std;
vector <int> sol={0,1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4,4,5,9,6,2,7,3,6,2,1,1,2,8,1,7,2,8,5,9,8,8,9,3,0,6,1,7,0,6,5,5,6,2,5,1,6,2,9,3,2,2,3,7,4,0,5,1,4,0,9,9,0,6,9,5,0,6,3,7,6,6,7,1,8,4,9,5,8,4,3,3,4,0,3,9,4,0,7,1,0,0};
static inline void test_case(){
string str;
cin>>str;
int ans;
if(len(str)>=2)
    ans=(str[len(str)-2]-'0')*10+(str[len(str)-1]-'0');
else ans=str[len(str)-1]-'0';
cout<<sol[ans]<<"\n";
}
inline int cif(int a,int b){
int rez=1;
while(b){
    if(b&1)
        rez=rez*a%10;
    a=a*a%10;
    b>>=1;
}
return rez%10;
}
inline int brute(int n){
int curr_sum=0;
for(int i=1;i<=n;++i)
    curr_sum=(curr_sum+cif(i,i))%10;
return curr_sum;
}

int main()
{
    freopen("cifra.in","r",stdin);
    freopen("cifra.out","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin>>t;
    while(t--)
        test_case();
}