Cod sursa(job #1118778)

Utilizator vlad.rusu11Rusu Vlad vlad.rusu11 Data 24 februarie 2014 13:11:50
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.82 kb
#include <fstream>
#include <cstring>

using namespace std;

short ultCifra(short u)
{
    short ultimaCifra;

    ultimaCifra = u % 10;

    if((ultimaCifra % 5 == 2) || (ultimaCifra % 5 == 3))
    {
        switch(ultimaCifra)
        {
            case 2: {
                        if(u % 4)
                            return 4;
                        else
                            return 6;
                    }
            case 3: {
                        if(u % 4 == 1)
                            return 3;
                        else
                            return 7;
                    }
            case 7: {
                        if(u % 4 == 1)
                            return 7;
                        else
                            return 3;
                    }
            case 8: {
                        if(u % 4)
                            return 4;
                        else
                            return 6;
                    }
        }
    }
    else
        if(ultimaCifra == 4)
            return 6;
        else
            return ultimaCifra;
    return 0;
}

int main()
{
    ifstream fin("cifra.in");
    ofstream fout("cifra.out");

    int T, i;
    short ultDoua, cifra, x, sol[101];
    char sir[101];

    fin >> T;
    fin.get();

    cifra = 0;
    for(short j=1 ; j<=99 ; ++j)
        sol[j] = cifra = (cifra + ultCifra(j)) % 10;

    for(i=1 ; i<=T ; ++i)
    {
        fin.get(sir,101);
        fin.get();

        x = 0;
        if(strlen(sir) > 1)
            x = (int)(*(sir + strlen(sir) - 2) - '0');
        ultDoua = x;
        x = (int)(*(sir + strlen(sir) - 1) - '0');
        ultDoua = ultDoua*10 + x;

        fout << sol[ultDoua] << '\n';
    }

    fin.close();
    fout.close();
    return 0;
}