Cod sursa(job #2460313)

Utilizator bori2000Fazakas Borbala bori2000 Data 23 septembrie 2019 13:04:12
Problema Cifra Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.74 kb
#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
using namespace std;

int utszj(int x)
{
    int u = x%10;
    int n = x%4;
    if(u<=5)
    {
        if(u==1) return 1;

        if(u==2 and n==2) return 4;
        if(u==2 and n==0) return 6;

        if(u==3 and n==1) return 3;
        if(u==3 and n==3) return 7;

        if(u==4) return 6;
        if(u==5) return 5;
    }


    if(u==6) return 6;

    if(u==7 and n==1) return 7;
    if(u==7 and n==3) return 3;

    if(u==8 and n==2) return 4;
    if(u==8 and n==0) return 6;

    if(u==9) return 9;

    if(u==0) return 0;
}

int main()
{
    ifstream f("cifra.in");
    ofstream g("cifra.out");

    int t;
    f>>t;
    //cout<<t<<endl;

    string s;
    getline(f, s);
    int  m, ered;

    //tomb generalasa
    int v[100]={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};
    /*v[1]=1;
    for(int i=2; i<=99; i++)
    {
        v[i]=v[i-1]+utszj(i);
        v[i]%=10;
    }*/

    for(int i=1; i<=t; i++)
    {
        getline(f, s);

        if(s.length()>=2){
            s=s.substr(s.length()-2, 2);
            m=(s[0]-48)*10+(s[1]-48);
        }
        else m=s[0]-48;

        /*ered = 0;
        ered+=m/20*4;
        ered%=10;
        while(m%20!=0)
        {
            ered+=utszj(m);
            ered%=10;
            m--;
        }*/
        g<<v[m]<<endl;
    }


    return 0;
}