Cod sursa(job #1519362)

Utilizator Belu99Bibo Bela Belu99 Data 7 noiembrie 2015 11:37:57
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 4.75 kb
#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
string N;
int T,v[50],x,y,i,n,j,s,q;
int main()
{
    ifstream f("cifra.in");
    ofstream g("cifra.out");
    f>>T;
    for(j=0;j<=T;j++)
    {
        getline(f,N);
        n=N.size();
        s=0;
        if(n>5)
        {
        for(q=0;q<=n/2;q++)
        {
            if(q!=n/2)
            y=x*100+(N[q]-'0')*10+(N[q+1]-'0');
            else
                y=x*10+(N[q]-'0')*10+(N[q+1]-'0');
            for(i=x;i<=y;i++)
            {
                if(i%10==1)
                    s=(s+1)%10;
                    else
                        if(i%10==2)
                            if(((i%100)/10)%2==1)
                                s=(s+6)%10;
                                else
                                    s=(s+4)%10;
                            else
                                if(i%10==3)
                                    if(((i%100)/10)%2==1)
                                        s=(s+3)%10;
                                        else
                                            s=(s+7)%10;
                                    else
                                        if(i%10==4)
                                            s=(s+6)%10;
                                    else
                                        if(i%10==5)
                                            s=(s+5)%10;
                                    else
                                        if(i%10==6)
                                            s=(s+6)%10;
                                    else
                                        if(i%10==7)
                                            if(((i%100)/10)%2==1)
                                                s=(s+7)%10;
                                                else
                                                    s=(s+3)%10;
                                            else
                                                if(i%10==8)
                                                    if(((i%100)/10)%2==1)
                                                        s=(s+4)%10;
                                                        else
                                                            s=(s+6)%10;
                                                    else
                                                        if(i%10==9)
                                                            s=(s+9)%10;
            }
            x=y%100;
        }
        g<<s<<endl;
        }
        else
            {
                x=0;
                for(i=0;i<n;i++)
                    x=x*10+(N[i]-'0');
            for(i=1;i<=x;i++)
            {
                if(i%10==1)
                    s=(s+1)%10;
                    else
                        if(i%10==2)
                            if(((i%100)/10)%2==1)
                                s=(s+6)%10;
                                else
                                    s=(s+4)%10;
                            else
                                if(i%10==3)
                                    if(((i%100)/10)%2==1)
                                        s=(s+3)%10;
                                        else
                                            s=(s+7)%10;
                                    else
                                        if(i%10==4)
                                            s=(s+6)%10;
                                    else
                                        if(i%10==5)
                                            s=(s+5)%10;
                                    else
                                        if(i%10==6)
                                            s=(s+6)%10;
                                    else
                                        if(i%10==7)
                                            if(((i%100)/10)%2==1)
                                                s=(s+7)%10;
                                                else
                                                    s=(s+3)%10;
                                            else
                                                if(i%10==8)
                                                    if(((i%100)/10)%2==1)
                                                        s=(s+4)%10;
                                                        else
                                                            s=(s+6)%10;
                                                    else
                                                        if(i%10==9)
                                                            s=(s+9)%10;
            }
            g<<s<<endl;
            }
    }
    return 0;
}