Cod sursa(job #2171085)

Utilizator IoanStoicaStoica Ioan IoanStoica Data 15 martie 2018 11:12:41
Problema Cifra Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.68 kb
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream f("cifra.in");
    ofstream g("cifra.out");
    int t,i,ct=0,a1,a2;f>>t;char c1,c2,c3;
    for(i=1;i<=t;i++)
    {
        ct=0;
        f>>noskipws>>c1;
        if(!(c1>='0' && c1<='9'))
        {
            f>>noskipws>>c1;
        }
        f>>noskipws>>c2;
        if(c2>='0' && c2<='9')
        {
            while(f>>noskipws>>c3)
                if(c3>='0' && c3<='9')
                {
                    c1=c2;c2=c3;
                }
                else break;
            ct=7*(c1-'0');a1=c1-'0';a2=c2-'0';
            if(a1%2==0)
            {
                switch(a2)
                {
                    case 1:ct=ct+1;break;
                    case 2:ct=ct+5;break;
                    case 3:ct=ct+2;break;
                    case 4:ct=ct+8;break;
                    case 5:ct=ct+3;break;
                    case 6:ct=ct+9;break;
                    case 7:ct=ct+2;break;
                    case 8:ct=ct+8;break;
                    case 9:ct=ct+7;break;
                }
            }
            else
                switch(a2)
                {
                    case 1:ct=ct+1;break;
                    case 2:ct=ct+7;break;
                    case 3:ct=ct+0;break;
                    case 4:ct=ct+6;break;
                    case 5:ct=ct+1;break;
                    case 6:ct=ct+7;break;
                    case 7:ct=ct+4;break;
                    case 8:ct=ct+8;break;
                    case 9:ct=ct+7;break;
                }
            g<<ct%10<<"\n";
        }
        else
        {
            a2=c1-'0';
            switch(a2)
                {
                    case 1:ct=ct+1;break;
                    case 2:ct=ct+5;break;
                    case 3:ct=ct+2;break;
                    case 4:ct=ct+8;break;
                    case 5:ct=ct+3;break;
                    case 6:ct=ct+9;break;
                    case 7:ct=ct+2;break;
                    case 8:ct=ct+8;break;
                    case 9:ct=ct+7;break;
                }
            g<<ct<<"\n";
        }
        /*for(j=1;j<=n;j++)
        {
            ct=0;
            uc=j%10;r4=j%4;
            switch(uc)
            {
                case 1:ct++;break;
                case 2:switch(r4){
                            case 0:ct=ct+6;break;
                            case 1:ct=ct+2;break;
                            case 2:ct=ct+4;break;
                            case 3:ct=ct+8;break;}break;
                case 3:switch(r4){
                        case 0:ct=ct+1;break;
                        case 1:ct=ct+3;break;
                        case 2:ct=ct+9;break;
                        case 3:ct=ct+7;break;}break;
                case 4:switch(j%2){
                        case 0:ct=ct+6;break;
                        case 1:ct=ct+4;break;}break;
                case 5:ct=ct+5;break;
                case 6:ct=ct+6;break;
                case 7:switch(r4){
                        case 0:ct=ct+1;break;
                        case 1:ct=ct+7;break;
                        case 2:ct=ct+9;break;
                        case 3:ct=ct+3;break;}break;
                case 8:switch(r4){
                        case 0:ct=ct+6;break;
                        case 1:ct=ct+8;break;
                        case 2:ct=ct+4;break;
                        case 3:ct=ct+2;break;}break;
                case 9:switch(j%2){
                        case 0:ct=ct+1;break;
                        case 1:ct=ct+9;break;}break;
            }
            ct=ct%10;
            g<<ct<<"\n";
        }*/
    }
    f.close ();
    g.close ();
}